23 디자인 모델 의 외관 모델 (Facade)
개술
Facade 는 구조 형 모델 중의 하나 로 서브 시스템 의 인터페이스 에 일치 하 는 인 터 페 이 스 를 제공 합 니 다. Facade 모델 은 고 층 인 터 페 이 스 를 정 의 했 는데 이 인 터 페 이 스 는 이 서브 시스템 을 더욱 쉽게 사용 할 수 있 습 니 다.
2 적용 성
4. 567917. 복잡 한 서브 시스템 에 간단 한 인 터 페 이 스 를 제공 하려 고 할 때.서브 시스템 은 종종 끊임없이 진화 하기 때문에 갈수 록 복잡 해진 다.대부분의 모드 를 사용 할 때 더 작은 클래스 가 생 긴 다.이 로 인해 서브 시스템 은 더욱 중용 성 을 가지 고 서브 시스템 에 대해 맞 춤 형 제작 을 하기 쉽 지만 이것 은 맞 춤 형 서브 시스템 이 필요 없 는 사용자 들 에 게 사용 상의 어려움 을 가 져 다 준다.Facade 는 간단 한 결 성 보 기 를 제공 할 수 있 습 니 다. 이 보 기 는 대부분의 사용자 에 게 충분 합 니 다. 더 많은 맞 춤 형 사용자 가 facade 층 을 넘 을 수 있 습 니 다
4. 567917. 고객 절차 와 추상 류 의 실현 부분 사이 에 큰 의존 도가 존재 한다.facade 를 도입 하여 이 서브 시스템 을 고객 및 기타 서브 시스템 과 분리 하면 서브 시스템 의 독립 성과 이식 성 을 높 일 수 있다
4. 567917. 계층 구조의 서브 시스템 을 구축 해 야 할 때 facade 모드 로 서브 시스템 의 각 층 의 입구 점 을 정의 합 니 다.만약 서브 시스템 간 에 서로 의존 하 는 것 이 라면, 당신 은 그것들 을 facade 를 통 해서 만 통신 하 게 하여, 그것들 간 의 의존 관 계 를 간소화 할 수 있 습 니 다
3 참가 자
4. 567917. Facade: 어떤 서브 시스템 류 가 처리 요 구 를 담당 하 는 지 알 고 있 습 니 다.고객 의 요청 을 적당 한 서브 시스템 대상 에 게 대리 합 니 다
Subsystemclasses: 서브 시스템 의 기능 을 실현 합 니 다.Facade 대상 이 파견 한 임 무 를 처리 하 다.facade 에 대한 정보 가 없습니다.즉, facade 를 가리 키 는 지침 이 없습니다
분류 도
5 코드 구현
//
// YJFacade.swift
// DesignPattern
//
// CSDN:http://blog.csdn.net/y550918116j
// GitHub:https://github.com/937447974/Blog
//
// Created by yangjun on 15/11/26.
// Copyright © 2015 . All rights reserved.
//
import Cocoa
/// A
private protocol ServiceProtocolA {
func methodA()
}
/// ServiceA
private class ServiceA: ServiceProtocolA {
func methodA() {
print(" A")
}
}
// MARK: -
/// B
private protocol ServiceProtocolB {
func methodB()
}
/// ServiceB
private class ServiceB: ServiceProtocolB {
func methodB() {
print(" B")
}
}
// MARK: -
/// Facade 。 。
private class Facade {
/// A
let sa: ServiceProtocolA = ServiceA()
/// B
let sb: ServiceProtocolB = ServiceB()
// MARK: A
func methodA() {
//
sa.methodA()
sb.methodB()
}
// MARK: B
func methodB() {
sb.methodB()
}
}
// MARK: -
///
class YJFacade: YJTestProtocol {
func test() {
let facade = Facade()
facade.methodA();
facade.methodB();
}
}
기타
소스 코드
Framework
문서 수정 기록
시간.
묘사 하 다.
2015-11-27
박문 완성
판권 소유
CSDN:http://blog.csdn.net/y550918116j
GitHub:https://github.com/937447974/Blog
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.