디자인 모델 관련 문제

2137 단어
1. 6 대 설계 원칙: 단일 직책 원칙, 개폐 원칙, 인터페이스 격 리 원칙, 후진 원칙, 리 씨 교체 원칙, 디 미트 원칙 에 의존한다.1. 단일 직책 원칙: 한 가지 유형 은 한 가지 일 만 책임 진다.예 를 들 어 CALayer 와 UIView 의 관 계 는 UIView 는 이벤트 전달 응답 만 담당 하고 CALayer 는 애니메이션 과 보기 의 전시 만 책임 집 니 다.2. 개폐 원칙: 수정 폐쇄, 확장 개방.예 를 들 어 클래스 를 정의 할 때 클래스 의 확장 성과 유연성 을 최대한 고려 하고 그 후에 반복 적 으로 클래스 를 수정 하 는 것 을 피하 고 그 다음 에 클래스 의 확장 과 서브 클래스 계승 만 한다.3. 인터페이스 격 리 원칙: 방대 한 비대 한 협의 가 아니 라 여러 개의 전문 적 인 협 의 를 사용한다.동시에 협의 중의 방법 은 가능 한 한 적다.예 를 들 어 UITableView 의 UITableView Delegate 는 리 셋 에이전트 이 벤트 를 전담 하고 UITableView DataSource 는 데이터 원본 을 전담 합 니 다.4. 후진 원칙 에 의존한다. 추상 은 구체 적 인 실현 에 의존 해 서 는 안 되 고 구체 적 인 실현 은 추상 에 의존 할 수 있다.예 를 들 어 데이터 뱅 크 의 삭제 와 검 사 는 상부 업 무 는 추상 적 인 인터페이스 에 만 의존 하고 인터페이스 내부 의 실현 (예 를 들 어 plist 파일, sqlite 등) 은 상부 업 무 는 주목 하지 않 는 다.5. 리 씨 교체 원칙: 부 류 는 이불 류 를 틈새 없 이 교체 할 수 있 고 원래 의 기능 은 어떠한 영향 도 받 지 않 는 다.예 를 들 어 kvo 실현 원리.6. 디 미트 원칙: 한 대상 은 다른 대상 에 대해 가능 한 한 적 게 알 아야 한다.높 은 내부 집적, 낮은 결합.
2. 흔히 볼 수 있 는 디자인 모델 은 책임 체인, 브리지, 어댑터, 단일 사례, 명령 이 있다.1. 책임 체인: 사건 응답 체제.2. 브리지: 한 페이지 목록 에서 여러 개의 네트워크 데 이 터 를 동시에 사용 합 니 다.3. 어댑터: 기 존 클래스 가 변화 에 적응 해 야 하 는 문제.대상 어댑터 와 클래스 어댑터 두 가지 가 있 습 니 다.
-(void){
//    
[          ]
//    
}

4. 일례:
+ (id)sharedInstance
{
    //       
    static SingleInstance *instance = nil;
    //   dispatch_once     instance             
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        //     ,   super  , self         ,    。
        instance = [[super allocWithZone:NULL] init];
    });
    return instance;
}

//     【    】。[[self alloc] init]   ,     
+ (id)allocWithZone:(struct _NSZone *)zone{
    return [self sharedInstance];
}

//     【    】。   copy ,     
- (id)copyWithZone:(nullable NSZone *)zone{
    return self;
}


 SingleInstance *a= [SingleInstance  sharedInstance];
 SingleInstance *b= [[SingleInstance alloc]init];
 SingleInstance *c= [SingleInstance   allocWithZone:nil];
 SingleInstance *d= [a  copy];
 NSLog(@"%@---%@---%@---%@",a,b,c,d);

5. 명령: 행동 매개 변수 라면 코드 결합 도 를 낮 춥 니 다.예 를 들 어 웨 이 보 앱 에서 모든 페이지 가 퍼 가기, 댓 글, 좋아요 등 을 할 수 있 기 때문에 각 페이지 에서 이 업무 논 리 를 실현 해 야 한다.

좋은 웹페이지 즐겨찾기