[디자인 모드] 작성 자 모드 (Builder 모드)

5422 단어 디자인 모드
건설 자 모드 (Builder Pattern) 는 여러 개의 간단 한 대상 을 사용 하여 한 걸음 한 걸음 복잡 한 대상 으로 구축한다.이런 유형의 디자인 모델 은 창설 형 모델 에 속 하 는데, 이것 은 창설 대상 을 만 드 는 가장 좋 은 방법 을 제공한다.하나의 Builder 류 는 한 걸음 한 걸음 최종 대상 을 구성 할 것 이다.이 Builder 클래스 는 다른 대상 에 독립 되 어 있 습 니 다.
의도
복잡 한 구축 을 표시 와 분리 시 켜 같은 구축 과정 에서 서로 다른 표 시 를 만 들 수 있 습 니 다.
이루어지다
우리 쪽 에서 하나의 기능 을 실현 하 는 것 은 다음 과 같다.
옷 한 벌 을 만 들 려 면 상의 가 여러 벌 이 고 바지 가 여러 벌 이 니 구성 할 수 있 는 옷 이 여러 가지 가 있 습 니 다.
건설 자 모드 는 하나의 Builder 를 만 들 고 서로 다른 수요 에 따라 여러 벌 의 옷 을 만 드 는 것 입 니 다.
  • 제품 만 들 기
  •     public class Clothes{
            private String Coat;
            private String Pants;
    
            public String getCoat() {
                return Coat;
            }
    
            public void setCoat(String coat) {
                Coat = coat;
            }
    
            public String getPants() {
                return Pants;
            }
    
            public void setPants(String pants) {
                Pants = pants;
            }
    
            @Override
            public String toString() {
                return "Clothes{" +
                        "Coat='" + Coat + '\'' +
                        ", Pants='" + Pants + '\'' +
                        '}';
            }
        }
  • Builder 추상 클래스 만 들 기
  •     public abstract class Builder{
            public abstract void setClothes(String Coat,String Pants);
            public abstract Clothes getClothes();
        }
    
  • Builder 실체 클래스 만 들 기
  •     public class ClothesBuilder extends Builder{
            private Clothes mClothes = new Clothes();
    
            @Override
            public void setClothes(String Coat, String Pants) {
                mClothes.setCoat(Coat);
                mClothes.setPants(Pants);
            }
    
            @Override
            public Clothes getClothes() {
                return mClothes;
            }
        }
  • 감독 류 만 들 기
  •     public class ClothesSuit{
            private Builder builder = new ClothesBuilder();
            public Clothes getClothes1(){
                builder.setClothes("  ","  ");
                return builder.getClothes();
            }
            public Clothes getClothes2(){
                builder.setClothes("  ","  ");
                return builder.getClothes();
            }
        }
  • 사용
  •     public static void main(String... args) {
            ClothesSuit clothesSuit = new ClothesSuit();
    
            Clothes clothes = clothesSuit.getClothes1();
    
            System.out.println(clothes.toString());
    
            clothes = clothesSuit.getClothes2();
    
            System.out.println(clothes.toString());
        }
  • 결과
  • I/System.out: Clothes{Coat='  ', Pants='  '}
    I/System.out: Clothes{Coat='  ', Pants='  '}

    자료.
    초보 강좌

    좋은 웹페이지 즐겨찾기