>  기사  >  백엔드 개발  >  Dahua PHP의 23가지 디자인 패턴, 높은 에너지, 프로세스 전반에 걸쳐 오줌 누는 곳 없음

Dahua PHP의 23가지 디자인 패턴, 높은 에너지, 프로세스 전반에 걸쳐 오줌 누는 곳 없음

天蓬老师
天蓬老师원래의
2018-01-09 11:29:436797검색

1. 창조적인 디자인 패턴

1. 공장 - 여자를 쫓고 싶다면 그녀에게 식사를 대접해야 합니다. 맥도날드 치킨 윙과 KFC 치킨 윙은 둘 다 그녀가 가장 좋아하는 음식입니다. 맛은 다르지만요. 그녀를 맥도날드나 KFC에 데려가더라도 웨이터에게 "닭 날개 4개"라고 말하면 됩니다. 맥도날드와 KFC는 닭날개를 생산하는 공장입니다
공장모델 : 고객등급과 공장등급이 분리되어 있습니다. 소비자가 특정 제품이 필요할 때마다 공장에 요청하면 됩니다. 소비자는 수정 없이 새로운 제품을 받아들일 수 있습니다. 단점은 제품이 수정되면 그에 맞춰 팩토리 클래스도 수정해야 한다는 점이다. 예: 생성 방법 및 클라이언트에 제공하는 방법.
2. 빌더 - 여자들이 가장 듣고 싶어하는 말은 "사랑해"입니다. 다양한 지역의 여자들을 만날 때 그 사람들의 사투리로 말할 수 있어야 해요. 각 언어별 버튼이 있습니다. MM이 표시되면 해당 버튼만 누르면 해당 언어로 "사랑합니다"라고 말할 수 있습니다. 나의 "사랑해요" 빌더. (이것은 이라크 미군이 사용하는 번역기보다 판매하기 쉬울 것입니다.)
구성 모드: 제품의 내부 표현과 제품 생성 프로세스를 분리하여 하나의 구성 프로세스가 서로 다른 내부 표현을 가진 제품 개체를 생성합니다. 구성 모드를 통해 제품의 내부 외관을 독립적으로 변경할 수 있으며 고객은 제품의 내부 구성에 대한 세부 사항을 알 필요가 없습니다. 빌드 모드는 단계별 빌드 프로세스를 시행합니다.
3. FACTORY METHOD - MM을 맥도날드에 초대해 햄버거를 먹습니다. MM마다 맛이 다릅니다. 저는 보통 MM을 웨이터에게 데려가서 "햄버거 먹을래요?"라고 말하는 것이 귀찮습니다. 어떤 종류의 버거를 원하는지 여자가 웨이터에게 직접 말하게 하세요. ㅋㅋㅋ                                  팩토리 메서드 패턴: 핵심 팩토리 클래스는 더 이상 모든 제품의 생성을 담당하지 않지만 특정 생성 작업은 하위 클래스에 맡기고 추상 팩토리 역할이 되며 특정 팩토리 클래스가 구현해야 하는 인터페이스 제공만 담당합니다. , 인스턴스화해야 하는 제품 클래스의 세부정보를 터치하지 마세요.
4. 프로토타입 - QQ에서 여자와 대화할 때 애정 어린 말을 해야 합니다. 역겨운 사랑의 말을 많이 모아두었습니다. 필요한 경우 복사하여 QQ에 넣으세요. (사본당 100위안, 원하시나요?)
원본 모델 모드: 프로토타입 객체를 제공하여 생성할 객체의 유형을 지정한 후 프로토타입 객체를 복사하여 동일한 유형의 객체를 더 생성합니다. 원래 모델 패턴은 제품 카테고리를 동적으로 추가하거나 축소할 수 있도록 하며, 사전에 결정된 계층 구조를 가질 필요가 없습니다. 원래 모델 패턴은 모든 계층 구조에 적합합니다. 단점은 모든 클래스에 복제 방법을 갖추어야 한다는 것입니다.
5. 싱글턴 - 저에게는 아름다운 아내가 6명 있습니다. 그들의 남편은 모두 저입니다. "남편"이라고 하면 모두 같은 사람, 즉 저입니다. 꿈, 어떻게 이런 좋은 일이 일어날 수 있지?
싱글턴 모드: 싱글턴 모드는 특정 클래스가 단 하나의 인스턴스만을 갖도록 보장하고, 자신을 인스턴스화하여 이
인스턴스를 전체 시스템에 제공합니다. 싱글톤 패턴은 진정한 "단일 인스턴스" 요구 사항이 있는 경우에만 사용해야 합니다.

두 번째, 구조적 모델
6. 어댑터—친구 파티에서 사라라는 아름다운 여성을 만났습니다. 그 사람은 홍콩에서 왔는데, 저는 광동어도 못하고 그 사람도 중국어를 못해서 제 언어를 선택해야 했어요. 친구 켄트. 사라와 나 사이의 어댑터를 사용하면 나와 사라가 서로 대화할 수 있습니다. (그가 나를 속일지는 모르겠습니다.)
어댑터(변환기) 모드: 클래스의 인터페이스를 기대하는 다른 인터페이스로 변환합니다. 일치하지 않는 인터페이스로 인해 원래 함께 작동할 수 없었던 두 클래스가 함께 작동할 수 있도록 클라이언트. 적응 클래스는 매개변수를 기반으로 클라이언트에 적합한 인스턴스를 반환할 수 있습니다.
7. BRIDGE - 아침에 여자를 만나면 좋은 아침 인사를 하고, 밤에 여자를 만나면 저녁 인사를 하고, 새 드레스를 입은 여자를 만나면 드레스가 너무 아름답다고 인사하세요. 여자라면 안녕이라고 인사하세요. 여자를 만나면 안녕이라고 인사하세요. 당신의 머리가 너무 아름답다고 말하고 싶습니다. “오늘 아침에 새로운 헤어스타일로 여자친구를 만나면 뭐라고 하시나요?”라고 묻지 말고 BRIDGE를 사용하여 직접 결합해보세요
브릿지 패턴: 추상화와 구현을 분리하여 두 가지가 독립적으로 변경될 수 있도록 합니다. 즉, 그들 사이의 강한 연관을 약한 연관으로 바꾸는 것, 즉 소프트웨어 시스템의 추상화와 구현 사이의 상속 관계 대신 결합/집합 관계를 사용하여 둘이 독립적으로 변할 수 있도록 하는 것이다.
8. COMPOSITE — 오늘은 Mary의 생일입니다. "내 생일인데 나한테 선물 주려고 하네." "그래, 가게에 가서 직접 골라봐." "이 티셔츠도 예뻐요, 이 스커트도 예뻐요." 그리고 이 가방도 꽤 괜찮아요. "야, 나 세 개 샀어. 한 개만 선물하기로 약속했어." . 아가씨, 포장해주세요." ""..." MM은 합성 모드를 사용합니다. 마스터하셨나요?
복합 모드: 복합 모드는 개체를 트리 구조로 구성하여 전체와 부분 간의 관계를 설명하는 데 사용할 수 있습니다. 컴포지션 패턴은 객체의 트리 구조를 다루는 패턴입니다. 합성 모드는 트리 구조를 사용하여 부분과 전체의 관계를 표현합니다. 구성 모드를 사용하면 클라이언트는 개별 구성 요소 개체를 구성 요소로 구성된 복합 개체와 동일하게 처리할 수 있습니다.
9. 장식자 - Mary가 축하한 후에는 Sarly가 생일을 축하할 차례입니다. 그녀에게 직접 선택하라고 하지 않는 것이 좋습니다. 그렇지 않으면 이번 달의 식비가 반드시 화산 정상에서 찍은 사진을 가져가게 될 것입니다. 작년에 뒷면에 'Best'라고 적었습니다. 내 선물은 당신을위한 나의 사랑입니다, 피타." 길거리 선물가게에 가서 액자를 샀고 (선물 파는 여자도 너무 아름다워요) 옆집 아트디자이너인 마이크에게 예쁜 상자를 디자인해 달라고 부탁했는데... , 우리는 모두 데코레이터이고, 결국 나를 사람으로 꾸미는 건 어때요?饰 장식 모드: 객체를 클라이언트에게 투명하게 확장하는 장식 모드의 기능은 관계를 상속하는 대안으로 상속보다 더 많은 유연성을 제공합니다. 객체에 기능을 동적으로 추가하면 이러한 기능을 동적으로 취소할 수 있습니다. 일부 기본 기능의 순열 및 조합으로 인해 매우 많은 양의 기능을 추가합니다.
10. FACADE — 저는 전문가용 Nikon 카메라를 가지고 있습니다. 조리개와 셔터를 직접 조정하여 전문적인 사진을 찍는 것을 좋아하지만 MM은 오랫동안 가르쳐 주었음에도 이를 이해하지 못합니다. 다행스럽게도 카메라에는 외관 디자인 모드가 있습니다. 카메라를 자동 모드로 조정하면 대상을 겨냥하고 셔터 버튼만 누르면 모든 것이 카메라에 의해 자동으로 조정되므로 MM도 이 카메라를 사용하여 작업할 수 있습니다. 내 사진을 찍어주세요.
               Facade 모드: 하위 시스템과의 외부 통신은 통합된 Facade 개체를 통해 수행되어야 합니다. Facade 패턴은 하위 시스템을 더 쉽게 사용할 수 있도록 하는 높은 수준의 인터페이스를 제공합니다. 각 하위 시스템에는 하나의 파사드 클래스만 있고 이 파사드 클래스에는 인스턴스가 하나만 있습니다. 즉, 싱글톤 패턴입니다. 그러나 전체 시스템에는 여러 개의 Facade 클래스가 있을 수 있습니다.
11. FLYWEIGHT - 매일 MM에게 문자를 보내는데 손가락이 피곤해요. 최근에 새 휴대폰을 샀어요. 자주 사용하는 문장을 휴대폰에 저장해서 필요할 때 바로 꺼내 쓸 수 있어요. 그리고 앞에 MM 이름을 붙여서 한 단어씩 입력하지 않고도 보낼 수 있습니다. 공유된 문장은 플라이웨이트(Flyweight)이며, MM이라는 이름은 외부특징을 추출하여 맥락에 맞게 활용한 것입니다.
플라이급 모드: FLYWEIGHT는 복싱 경기의 밴텀급을 의미합니다. 플라이웨이트 모드는 공유 방식으로 많은 수의 세분화된 개체를 효율적으로 지원합니다. 플라이급 모델을 공유하는 핵심은 내재적 상태와 외재적 상태를 구별하는 것입니다. 고유 상태는 플라이웨이트 내부에 저장되며 환경 변화에 따라 변경되지 않습니다. 외부 상태는 환경의 변화에 ​​따라 변합니다. 외부 상태는 내부 상태에 영향을 미칠 수 없으며 서로 독립적입니다. 공유할 수 있는 상태와 일반 클래스에서 공유할 수 없는 상태를 구별하고, 공유할 수 없는 상태를 클래스에서 제거합니다. 클라이언트는 공유 객체를 직접 생성할 수 없지만 공유 객체를 생성하려면 팩토리 객체를 사용해야 합니다. 플라이웨이트 모드는 메모리의 개체 수를 크게 줄입니다.
12. PROXY - 온라인에서 여자와의 채팅은 항상 "안녕하세요", "어디에서 오셨나요?", "키가 몇이에요?"로 시작됩니다. 내 Proxy가 되어 이 단어를 받으면 자동 응답을 설정하고, 다른 단어를 받으면 응답을 알려 주면 어떨까요?
프록시 모드: 프록시 모드는 특정 개체에 대한 프록시 개체를 제공하며, 프록시 개체는 소스 개체에 대한 참조를 제어합니다. 대리인은 개인이나 기관이 다른 사람이나 기관을 대신하여 행동하는 경우입니다. 어떤 경우에는 클라이언트가 개체를 직접 참조하는 것을 원하지 않거나 직접 참조할 수 없으며 프록시 개체가 클라이언트와 대상 개체 사이의 중개자 역할을 직접 수행할 수 있습니다. 클라이언트는 프록시 토픽 개체와 실제 토픽 개체 간의 차이를 구분할 수 없습니다. 프록시 모드는 실제 프록시 객체를 알지 못하며 프록시 객체의 인터페이스만 보유합니다. 이때 프록시 객체는 프록시 객체를 생성할 수 없으며 시스템의 다른 역할에 의해 전달되어야 합니다.
세 가지, 행동 패턴
13. 책임의 사슬 - 저녁에 영어 수업을 갔는데, 그냥 재미삼아 맨 마지막 줄에 앉았는데, 와, 내 앞에 예쁜 여자 몇 명이 앉아 있는 걸 발견했어요. "안녕하세요, 제 여자친구가 되어주실 수 있나요? 원하지 않으시면 전달해 주세요."라는 메모가 차례차례 전달되었습니다. 앗, 첫 번째 줄의 소녀가 선생님에게 메모를 전달했습니다.
책임 사슬 모델에서는 많은 객체가 하위 패밀리에 대한 참조로 연결되어 체인을 형성합니다. 요청은 체인의 개체가 요청을 처리하기로 결정할 때까지 체인 위로 전달됩니다. 클라이언트는 체인의 어떤 개체가 최종적으로 요청을 처리하는지 알 수 없으며 시스템은 클라이언트에 영향을 주지 않고 체인을 동적으로 재구성하고 책임을 할당할 수 있습니다. 처리자에게는 책임을 수락하거나 다음 당사자에게 책임을 넘기는 두 가지 선택이 있습니다. 요청은 궁극적으로 수신 객체에 의해 수락될 수 없습니다.
14. 명령—가족이 매우 엄격하여 서로 만날 수 없는 여자아이가 있습니다. 그래서 그녀는 우리 사이에 메시지를 보내기 위해 오빠에게 의존해야 합니다. 그녀가 나에게 지시할 사항이 있으면 메모를 작성하세요. 그녀의 오빠에게 그것을 나에게 가져다달라고 부탁하세요. 아니, 오빠가 또 COMMAND를 보내서 고마움을 표하려고 잡라면 한 그릇을 대접했는데, 갑자기 "내 동생 남자친구 셋한테 동시에 COMMAND를 줬는데 너 인색하구나. 그냥 대접해라." 국수 좀 주세요.”,
명령 모드: 명령 모드는 요청이나 작업을 개체로 캡슐화합니다. 명령 패턴은 명령 실행에 대한 책임과 명령 실행에 대한 책임을 분리하고 이를 다른 개체에 위임합니다. 명령 모드를 사용하면 요청 당사자가 전송 당사자로부터 독립될 수 있으므로 요청 당사자는 요청 수신 방법, 작업 여부, 시기 및 방법은 물론 요청을 받는 당사자의 인터페이스를 알 필요가 없습니다. 의 실행됩니다. 시스템은 명령 실행 취소를 지원합니다.
15. 통역가 - 서양음식 먹는 법, 영화 보러 가는 방법 등 다양한 여자 뽑기 전략이 담긴 '여자 뽑기 진서'가 있어요. 통역사만 있으면 됩니다. 위 스크립트를 따르고 실행하면 됩니다.
통역사 모드: 통역사 모드는 언어가 주어지면 문법 표현을 정의하는 동시에 통역사를 제공할 수 있습니다. 고객은 이 통역사를 사용하여 이 언어로 된 문장을 해석할 수 있습니다. 인터프리터 패턴은 간단한 문법이 주어진 패턴 디자인을 사용하여 이러한 명령문을 해석하는 방법을 설명합니다. 인터프리터 패턴에 언급된 언어는 모든 인터프리터 객체가 해석할 수 있는 모든 조합을 나타냅니다. 인터프리터 모드에서는 문법, 즉 일련의 조합 규칙을 나타내는 명령어 클래스의 계층적 구조를 정의하는 것이 필요하다. 각 명령 개체에는 명령 개체의 해석을 나타내는 해석 방법이 있습니다. 명령 개체의 계층 구조에 있는 개체의 순열과 조합은 언어입니다.
16. 반복자 - 나는 Mary와 사랑에 빠졌고 그녀에게 필사적으로 청혼했습니다.
Mary: "내가 결혼하려면 내 조건에 동의해야 합니다."
Me: "어떤 조건에도 동의하겠습니다. 말씀해 주세요."
Mary: "나는 저 1캐럿 다이아몬드에 끌립니다."
나: "사겠습니다, 사겠습니다. 더 있나요?"
Mary: "호수 옆 저 별장에 관심이 가네요"
나: "사겠습니다, 사겠습니다." , 더 있나요?”
메리: “저 페라리 스포츠카에 관심이 있어요”
머리가 윙윙거리고 의자에 앉아 이를 악물고 “사겠습니다, 사겠습니다, 거기 있어요” 더 없어요?"
" "
반복 하위 패턴: 반복 하위 패턴을 사용하면 컬렉션의 내부 표현을 노출하지 않고 컬렉션의 요소에 순차적으로 액세스할 수 있습니다. 여러 개체가 함께 모여 형성된 집계를 집계 개체라고 합니다. 집계 개체는 개체 그룹을 포함할 수 있는 컨테이너 개체입니다. 반복 하위 패턴은 반복 논리를 컬렉션 자체와 별도로 별도의 하위 개체로 캡슐화합니다. 반복 하위 패턴은 집계를 위한 인터페이스를 단순화합니다. 각 집계 객체는 하나 이상의 반복자 하위 객체를 가질 수 있으며, 각 반복자의 반복 상태는 서로 독립적일 수 있습니다. 반복 알고리즘은 집계 역할과 관계없이 달라질 수 있습니다.
17. 중재자 - 네 명의 소녀가 마작을 하고 있었는데, 서로에게 얼마를 주어야 할지 고민하고 있었습니다. 다행히도 제가 그 자리에 있어서 칩 수에 따라 돈을 계산해 주었습니다. 돈을 벌다가 잃어버렸어요. 돈만 주면 모든 게 괜찮을 거예요. 네 명의 여자의 전화번호를 알았어요.调 Dejotter 모드: 중간 모드는 일련의 개체 상호 작용 개체를 패키지하므로 이러한 개체가 명백하게 작동할 필요는 없습니다. 이를 통해 느슨하게 결합할 수 있습니다. 일부 개체 간의 상호 작용이 변경되면 다른 개체 간의 상호 작용에 즉시 영향을 미치지 않습니다. 이러한 효과가 서로 독립적으로 변경될 수 있는지 확인하십시오. Mediator 패턴은 다대다 상호작용을 일대다 상호작용으로 변환합니다. 중재자 패턴은 개체의 동작과 협업을 추상화하고 다른 개체와의 상호 작용과 별도로 개체의 소규모 동작을 처리합니다.
18. 메모 - 동시에 여러 여자와 대화할 때는 방금 그 여자에게 무슨 말을 했는지 명확하게 기억하세요. 그렇지 않으면 그 여자가 알면 기분이 나빠질 것입니다. 다행히 제가 방금 어떤 말을 했는지 메모가 있습니다. 나는 그 소녀에게 말했습니다. 나는 언제든지 이전 기록을 확인할 수 있도록 복사하여 메모에 보관합니다.
메모 모드: 메모 개체는 다른 개체의 내부 상태에 대한 스냅샷을 저장하는 데 사용되는 개체입니다. 메모 패턴의 목적은 캡슐화를 파괴하지 않고 객체의 상태를 캡처, 외부화 및 저장하여 향후 적절한 시점에 객체가 저장된 상태로 복원될 수 있도록 하는 것입니다.
19. OBSERVER — 우리 회사의 최신 MM 정보가 알고 싶다면? 회사의 MM 인텔리전스 이메일 그룹에 가입하면 정보 수집을 담당하므로 그가 발견한 새로운 정보를 이메일 그룹에 직접 게시할 필요가 없습니다. 제때에 정보를 받으세요
관찰자 패턴: 관찰자 패턴은 여러 관찰자 개체가 특정 주제 개체를 동시에 모니터링할 수 있도록 하는 다중 팀 종속 관계를 정의합니다. 이 토픽 개체의 상태가 변경되면 모든 관찰자 개체에 알리고 자동으로 업데이트되도록 합니다.
        20. 상태 - 여자와 데이트할 때는 그녀의 상태에 주의를 기울여야 합니다. 그녀의 행동은 주에 따라 다를 것입니다. 예를 들어, 오늘 밤에 그녀에게 영화 보러 가자고 하면 당신에게 관심이 없는 여자는 그럴 것입니다. 당신을 좋아하지 않지만 아직 당신과 사랑에 빠지지 않은 여자는 "그럼 내 동료를 데려가도 될까요?"라고 말할 것이고, 이미 당신을 좋아하는 여자는 "영화 몇 시에 끝나?" 클럽에 다시 가는 게 어때?" 물론 영화를 보면서 얌전하게 행동하면 MM의 상태를 싫어요에서 좋아요로 변경할 수도 있습니다.态 상태 모드: 상태 모드를 사용하면 객체의 내부 상태가 변경될 때 객체의 동작을 변경할 수 있습니다. 개체의 클래스가 변경된 것 같습니다. 상태 패턴은 연구 중인 객체의 동작을 다양한 상태 객체로 래핑합니다. 각 상태 객체는 추상 상태 클래스의 하위 클래스에 속합니다. 상태 패턴의 목적은 객체의 내부 상태가 변경될 때 객체의 동작을 변경할 수 있도록 하는 것입니다. 상태 패턴에서는 시스템이 얻을 수 있는 각 상태에 대해 상태 클래스의 하위 클래스를 생성해야 합니다. 시스템 상태가 변경되면 시스템은 선택한 하위 클래스를 변경합니다.
          21. 전략 - 다양한 유형의 여성과 데이트할 때는 다양한 전략을 사용해야 합니다. 어떤 사람은 영화를 보러 가는 것이 좋고, 어떤 사람은 간식을 먹으러 가고, 어떤 사람은 로맨스를 위해 해변에 가는 것이 좋습니다. .Fang Xin, 내 툴킷에는 소녀를 쫓는 전략이 많이 있습니다.
전략 패턴: 전략 패턴은 일련의 알고리즘을 대상으로 하며 각 알고리즘을 공통 인터페이스가 있는 독립적인 클래스로 캡슐화하여 서로 교체할 수 있도록 합니다. 전략 패턴을 사용하면 클라이언트에 영향을 주지 않고 알고리즘을 변경할 수 있습니다. 전략 패턴은 동작을 환경과 분리합니다. 환경 클래스는 행위 클래스를 유지하고 조회하는 역할을 담당하며, 특정 전략 클래스에서는 다양한 알고리즘을 제공한다. 알고리즘과 환경은 독립적이므로, 알고리즘의 추가, 삭제, 수정이 환경과 클라이언트에 영향을 미치지 않습니다.

22. 템플릿 방법 ——"소녀를 잠자리에 들도록 설득하는 방법"이라는 고전 기사를 읽어 보셨나요? 소녀들은 잠자리에 드는 불변의 단계가 우연한 만남, 얼음 깨기, 추구하기, 키스하기, 전희, 실습하기, 애무하기, 들어가기의 8단계(템플릿 방식)로 나누어져 있음을 알고 있습니다. 그러나 각 단계는 사람마다 다릅니다. 이를 수행하는 방법은 적응성(특정 구현)에 따라 다릅니다.
템플릿 메서드 패턴: 템플릿 메서드 패턴은 추상 클래스를 준비하고 구체적인 메서드 및 구체적인 생성자의 형태로 논리의 일부를 구현한 다음 일부 추상 메서드를 선언합니다. 자식을 강제로 클래스는 나머지 논리를 구현합니다. 서로 다른 서브클래스는 이러한 추상 메서드를 서로 다른 방식으로 구현할 수 있으므로 나머지 논리도 서로 다르게 구현됩니다. 먼저 최상위 논리 프레임워크를 개발하고 논리의 세부 사항을 특정 하위 클래스에 맡기십시오.
23. 방문자—발렌타인데이가 다가왔습니다. 각 소녀는 꽃다발과 카드를 받아야 합니다. 그러나 각 소녀가 보낸 꽃은 개인 특성에 따라 선택되어야 하며 각 카드도 그녀의 특성에 따라 선택되어야 합니다. 개인적 특성은 스스로 알 수 없기 때문에 꽃집 주인과 선물가게 주인에게 손님이 되어달라고 부탁하는 것이 좋을 것 같습니다. 선물 가게 주인이 각 사람의 특성에 따라 카드를 선택하게 하세요. 이렇게 하면 훨씬 쉬워집니다.
방문자 패턴: 방문자 패턴의 목적은 특정 데이터 구조 요소에 적용되는 일부 작업을 캡슐화하는 것입니다. 이러한 작업을 수정해야 하는 경우 이 작업을 허용하는 데이터 구조는 변경되지 않고 그대로 유지될 수 있습니다. 방문자 패턴은 상대적으로 결정되지 않은 데이터 구조를 가진 시스템에 적합합니다. 이는 데이터 구조와 구조에 작용하는 작업 간의 결합을 분리하여 작업 집합이 상대적으로 자유롭게 발전할 수 있도록 합니다. 방문자 패턴을 사용하면 새 방문자 클래스를 추가하여 새 작업을 쉽게 추가할 수 있습니다. 방문자 패턴은 관련 동작을 노드 클래스로 분산시키는 대신 방문자 개체에 집중합니다. 방문자 패턴을 사용하는 경우 하위 클래스가 아닌 방문자 클래스에 가능한 한 많은 개체 탐색 논리를 배치하세요. 방문자 패턴은 여러 클래스 계층에 걸쳐 서로 다른 계층에 속하는 멤버 클래스에 액세스할 수 있습니다.


위 내용은 Dahua PHP의 23가지 디자인 패턴, 높은 에너지, 프로세스 전반에 걸쳐 오줌 누는 곳 없음의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.