디자인 모델 - 많은 공장 - 생 성기 - 명령 - 템 플 릿 - 조합

2755 단어
더 읽 기
뭐? GOF 나 이 책?
공장.  결론 적 으로 공장 은 말 그대로 수요 에 따라 끊임없이 생산 하 는 것 이다.
간단 한 공장 은 바로 실현 을 선택 하 는 것 이다. 공장 방법 은 실현 을 하위 클래스 (추상 류 가 정 의 를 실현 하려 면 복사 가 필요 한 방법) 로 지연 시 켜 실현 할 수 있 고 추상 공장 은 인터페이스 로 추상 적 으로 실현 하여 더욱 높 은 차원 의 격 리 를 실현 하 는 것 이다.
public static Api createApi(int i){
	if(i == 1){
		return  new ImplA();
	}
	return new ImplB();
}

 
생 성기
이벤트 구축 알고리즘 과 위 젯 구 조 를 분리 합 니 다.
어떻게 보면 공장 + 외관 처럼 포장 을 실현 하고 해당 하 는 매개 변수 선택성 을 통 해 내부 디 테 일 을 실현 합 니 다.하지만 이런 패턴 은 우아 한 면 이 있다.그것 은 전체 구축 알고리즘 과 부품 구 조 를 분리 했다.이곳 의 부품 은 말하자면 위의 공장 에서 선택 한 실현 조건 i. 단지 하나의 대상 일 뿐 이 고 대상 내부 에 약간의 데이터 가 포함 되 어 있 을 뿐이다.위 젯 의 구조 와 구축 알고리즘 을 격 리 시 키 는 것 이 좋 습 니 다. 즉, 위 젯 을 새로 만 들 면 그 중의 알고리즘 으로 결 과 를 수행 할 수 있 습 니 다.
TxtBuilder tb = new TxtBuilder(); //    ,     txt,    doc....
Director d = new Director(tb);//  ,    。

//      
public interface Builder {

	public void builderHeader(List list);
	
	public void buildBody(List list);
	
	public void buildFooter(List list);
	
}

 명령 모드
외관 의 연장 이 라 고 생각 했 는데 이 를 취소 할 수 있다 면 이것 이 하 이 라이트 입 니 다.패 키 징 요청, 파라미터 화 설정, 스크롤 백 을 취소 할 수 있 습 니 다.
명령 모드 양식 은 간단 합 니 다. 바로 뒤에 A 를 호출 하여 특정한 기능 을 완성 하고 B 를 호출 하여 특정한 기능 을 완성 합 니 다.
 
템 플 릿 방법
작업 중의 고정된 알고리즘 골격 을 정의 하고 일부 절 차 를 하위 클래스 로 지연 시 켜 하위 클래스 가 알고리즘 의 구 조 를 바 꾸 지 않 고 이 알고리즘 의 특정한 절 차 를 다시 정의 할 수 있 도록 한다.중복 코드 를 피하 고 확장 성 을 증가 합 니 다.다음 getpass 방법 은 집합 클래스 의 comparator 정렬 과 같 습 니 다.
public abstract class LoginTemplate
{

	public  boolean login(String user,String pass)
	{
		if(pass.equals(getPass(user)))
			return true;
		return false;
	}
	
	public abstract String getPass(String user);
	
}

 
public class UserLogin extends LoginTemplate
{

	@Override
	public String getPass(String user)
	{
		return user+"password";
	}

}

 ... 과
public class IdLogin extends LoginTemplate
{

	@Override
	public String getPass(String id)
	{
		// TODO   Id   
		return null;
	}

}

 상황 에 따라 다른 실현 을 선택 하 다.
조합 하 다
잎 대상 과 조합 대상 의 방문 등 조작 방식 을 통일 하 다.대상 의 부분 - 전체 차원 구조의 조작 을 통일 시 켜 구 조 를 더욱 간단 하 게 한다.클 라 이언 트 호출 을 간단하게 했 습 니 다.JMX 의 coposite 가 바로 이런 표현 입 니까?환상 인용 을 피하 다.
Composite c1 = new Object();
Composite c2 = new Object();
c1.add(new Object());
c2.add(c1);
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기