Python이 파사드 모드를 구현하는 방법보기

소개

  비교적 생생한 비유를 만들어 보겠습니다. XXXX Railway Engineering Bureau와 같은 배너로 표시 할 수있는 건설 현장의 건물 표면과 정면을 비교해 보겠습니다. 더 눈길을 끄는면이 더 많은 관심을 끌 수 있습니다. 건물 옆에서는 외관을 볼 수 있고, 현재로서는 자체 구조의 복잡성을 이해하지 못합니다.
  프로그램의 내부 복잡성을 숨기면서 파사드는 외부 클라이언트를 위해 쉽게 액세스 할 수있는 인터페이스를 제공합니다.

 

 

구조적 디자인 패턴

Facade 모드는 Singleton 모드 및 Factory 모드와 다르며 구조 모드입니다.

  • 구조 패턴은 객체와 클래스를 더 큰 구조로 결합하는 방법을 설명합니다.

  • 구조 모드는 설계 작업을 단순화 할 수있는 모드로 엔티티 간의 관계를보다 쉽게 ​​인식하거나 표현할 수있는 방법을 찾을 수 있습니다.

  • 구조 모드는 클래스 및 객체 모드의 합성입니다. 클래스 패턴은 상속을 통한 추상화를 설명하므로보다 유용한 프로그램 인터페이스를 제공하고 개체 패턴은 개체를 연결하여 더 큰 개체를 형성하는 방법을 설명합니다.

 

파사드 디자인 패턴 이해

  • 하위 시스템의 인터페이스 그룹에 대한 통합 인터페이스를 제공하고 클라이언트가 하위 시스템을보다 간단하게 사용할 수 있도록 고급 인터페이스를 정의합니다.

  • 파사드로 해결되는 문제는 단일 인터페이스 객체를 사용하여 복잡한 하위 시스템을 표현하는 방법입니다. 사실 캡슐화 하위 시스템이 아니라 기본 하위 시스템의 조합입니다.

  • 하위 시스템과 클라이언트의 분리를 촉진합니다.

 

다음 그림은 이해하는 데 도움이 될 수 있습니다.

영상

세 가지 참가자가 있습니다 : 파사드, 클라이언트, 시스템

 

고객

파사드
인스턴스화됩니다. 파사드에 하위 시스템이 해당 기능을 완료 할 수 있도록 요청이 만들어집니다.
클라이언트는 파사드와 상호 작용하므로 하위 시스템과 쉽게 통신하고 작업 항목을 완료 할 수 있습니다. 체계.

 

정면

요청을 처리해야하는 하위 시스템을 알고
클라이언트의 요청을 결합 된 방식으로 해당 하위 시스템 개체에 위임 하는 인터페이스

 

체계

서로 다른 작업을 담당하는 클래스 그룹으로 표현되는 하위 시스템의 기능을 인식합니다.
파사드 객체 할당을 처리하지만 파사드를 모르고 참조하지 않습니다.

 

간단한 이해 : 전체 모델의 구현은 파사드가 클라이언트의 요구를받은 후 작업을 완료하도록 시스템을 배열하는 것입니다.

일상적인 예를 들어 보겠습니다. 어느 날 친구와 KFC에 갔는데 웨이터에게 XXX 정식을 주문했습니다. 정식에는 아이스 콜라 한 잔, 버거, 감자 튀김 한 조각, 주문 요청을 듣고 웨이터가 고개를 돌려 Houchu에게 XXX 정식이 필요하다고 말했기 때문에 Houchu에서 연기를 시작한 사람이 4 명, 콜라 1 명, 햄버거 1 명, 감자 튀김 용, 닭 날개 용

이 예에서, 당신은 클라이언트이고, 웨이터는 파사드이고, 뒷 주방에있는 4 명의 사람들이 4 개의 서브 시스템을 만들고, 그들은이 패키지의 생산을 완료하기 위해 함께 일합니다. 이런 식으로 파사드 모델에 대한 이해는 매우 간단하고 명확합니다.

 

파이썬은 파사드 모드를 구현합니다

#门面
class ProjectProcess(object):
    def __init__(self):
        print("get the project of the process")

    def get_process(self):
        self.req=Requirement()
        self.req.getRequirementProcess()

        self.dev=Develop()
        self.dev.getDevelopProcess()

        self.test=Test()
        self.test.getTestProcess()

#子系统
class Requirement(object):
    def __init__(self):
        print("return the requirement of process")

    def getRequirementProcess(self):
        print("the requirement was complement 90%")


class Develop(object):
    def __init__(self):
        print("return the requirement of process")

    def getDevelopProcess(self):
        print("the develop was complement 30%")


class Test(object):
    def __init__(self):
        print("return the requirement of process")

    def getTestProcess(self):
        print("the test was complement 10%")

#客户端
if __name__ == '__main__':
    pp = ProjectProcess()
    pp.get_process()

 

최소 지식의 원칙

   (1) 파사드는 특정 기능을 구현하는 하위 시스템에서 클라이언트를 분리 할 수 ​​있으며, 그 배후의 디자인 원칙은 최소 지식의 원칙입니다.
   (2) 시스템을 설계 할 때 생성 된 각 객체에 대해 상호 작용하는 클래스의 수와 서로 밀접하게 연결된 많은 클래스가 생성되지 않도록 상호 작용하는 방법을 검토해야합니다. 클래스간에 종속성이 많으면 시스템 유지 관리가 어려워집니다.

[The Way of Infinite Testing] 공개 계정 , [receive resources]에 대한 답장,
Python 프로그래밍 학습 리소스 건조 상품,
Python + Appium 프레임 워크 APP UI 자동화,
Python + Selenium 프레임 워크 웹 UI 자동화,
Python + Unittest 프레임 워크 API에 대한 관심을 환영합니다. 오토메이션,

리소스와 코드는 무료로 발송됩니다 ~
기사 하단에 공식 계정의 QR 코드가 있습니다. 위챗에서 스캔 만하시면됩니다.

비고 : 빅 데이터 테스트, 기능 테스트, 테스트 개발, API 인터페이스 자동화, 테스트 운영 및 유지 관리, UI 자동화 테스트 등, WeChat 검색 공개를 포함한 테스트 기술 공유에 전념하는 내 개인 공개 계정이 공식적으로 개설되었습니다. 계정 : "Wuliang The Way of Testing"또는 아래 QR 코드를 스캔하세요.

 관심을 더하고 함께 성장합시다!

추천

출처blog.csdn.net/weixin_41754309/article/details/113093627