예를 들어 Python에서 디자인 모델의 외관 모델의 운용을 분석하다
복잡하고 작은 기능이 호출 수요를 필요로 할 때, 그리고 이런 호출은 왕왕 일정한 관련성이 있다. 즉, 호출이 일련의 것이다.
구조적 특성:
원래 복잡하고 번거로운 호출을 하나의 입구류로 통일시키고 이때부터 이 입구만 호출하면 된다.
코드 구조의 예:
class ModuleOne(object):
def Create(self):
print 'create module one instance'
def Delete(self):
print 'delete module one instance'
class ModuleTwo(object):
def Create(self):
print 'create module two instance'
def Delete(self):
print 'delete module two instance'
class Facade(object):
def __init__(self):
self.module_one = ModuleOne()
self.module_two = ModuleTwo()
def create_module_one(self):
self.module_one.Create()
def create_module_two(self):
self.module_two.Create()
def create_both(self):
self.module_one.Create()
self.module_two.Create()
def delete_module_one(self):
self.module_one.Delete()
def delete_module_two(self):
self.module_two.Delete()
def delete_both(self):
self.module_one.Delete()
self.module_two.Delete()
약간 프록시 모델과 유사하다. 다른 점은 외관 모델은 하나의 서브시스템의 각 모듈의 기능을 대리할 뿐만 아니라 서브시스템의 측면에 서서 서브시스템의 각 모듈의 기능을 조합하여 대외적으로 더욱 높은 인터페이스를 제공하여 의미에서 서브시스템 차원의 수요를 더욱 만족시킨다는 것이다.시스템 기능이 끊임없이 확장됨에 따라 시스템을 여러 개의 서브시스템이나 서브모듈로 나누어 결합을 줄이고 시스템 코드의 복잡도를 낮추며 유지보수성을 높여야 할 때 에이전트 모델은 일반적으로 쓸모가 있다.
다음 예제를 살펴보겠습니다.
class small_or_piece1:
def __init__(self):
pass
def do_small1(self):
print 'do small 1'
class small_or_piece_2:
def __init__(self):
pass
def do_small2(self):
print 'do small 2'
class small_or_piece_3:
def __init__(self):
pass
def do_small3(self):
print 'do small 3'
class outside:
def __init__(self):
self.__small1 = small_or_piece1()
self.__small2 = small_or_piece_2()
self.__small3 = small_or_piece_3()
def method1(self):
self.__small1.do_small1() ## 2 , , ,
self.__small2.do_small2()
def method2(self):
self.__small2.do_small2()
self.__small3.do_small3()
if __name__ == '__main__':
osd = outside()
osd.method1()
osd.method2()
결과:
do small 1
do small 2
do small 2
do small 3
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.