디자인 모델 학습 - 건설 모델
2630 단어 디자인 모델 학습
1. 추상 적 인 건축 자 역할
interface PersonBuilder{
void buildHead();
void buildBody();
Person buildPerson();
}
2, 구체 적 인 건설 자 역할
class ManBuilder implements PersonBuilder{
Person person;
public ManBuilder(){
person = new Man();
}
public void buildHead(){person.setHead(" ");}
public void buildBody(){person.setBody(" ");}
public Person buildPerson(){return person;}
}
3. 지도자 역할 (건설 자 방법 으로 제품 만 들 기)
class PersonDirector{
public Person constructPerson(PersonBuilder pd){
pd.buildHead();
pd.buildBody();
return pd.buildPerson();
}
}
4, 제품 역할
class Person{
private String head;
private String body;
public String getHead() {
return head;
}
public void setHead(String head) {
this.head = head;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
}
class Man extends Person{};
사용 방법 은 다음 과 같다.
public class Test {
public static void main(String[] args) {
// , ,
//
PersonDirector pd = new PersonDirector();
Person person = pd.constructPerson(new ManBuilder());
System.out.println(person.getHead());
System.out.println(person.getBody());
}
}
건축 모델 은 제품 내부 의 이미 지 를 독립 적 으로 변화 시 킬 수 있 고 원래 의 공장 방법 모델 에서 제품 내부 의 이미 지 는 제품 자체 에 의 해 결정 된다.건설 모델 에 서 는 건설 자가 책임 진다.이렇게 새로운 구체 적 인 건설 자 역할 을 정의 하면 제품 의 내부 이미 지 를 바 꿀 수 있다.
건설 모델 은 복잡 한 내부 생 성 을 내부 에 밀봉 하고 외부 호출 자 에 게 는 건설 자 와 건설 도구 만 전달 해 야 하 며 내부 가 어떻게 실현 되 는 지 에 대해 서 는 관심 을 가 질 필요 가 없다.