Android Builder 디자인 모드 읽 고 실전

빌 더 모드
복잡 한 대상 의 구축 과 그 표 시 를 분리 시 켜 같은 구축 과정 에서 서로 다른 표 시 를 만 들 수 있 습 니 다.
Builder 모드 의 사용 장면
  • 같은 방법, 서로 다른 집행 순서, 서로 다른 사건 결과 가 발생 할 때.
  • 여러 부품 이나 부품 을 한 대상 에 조립 할 수 있 으 나 발생 하 는 운행 결 과 는 같 지 않다.
  • 제품 류 가 매우 복잡 하거나 제품 류 의 호출 순서 가 다 르 기 때문에 서로 다른 역할 을 한다. 이때 건축 자 모델 을 사용 하 는 것 이 매우 적합 하 다.
  • 대상 을 초기 화 하 는 것 이 매우 복잡 합 니 다. 예 를 들 어 매개 변수 가 많 고 많은 매개 변수 가 기본 값 을 가지 고 있 을 때
  • 예컨대
    
        package com.softtanck;
        /** * * @author Tanck * * @date 2015-11-30 14:08:39 * */
        public class CarConfig {
    
            int wheels;//    
    
            int color;//     
    
            int maxSeat;//     
    
            int maxSpeed;//     
    
            //   ...
    
            private CarConfig() {
            }
    
            public static class Builder {
    
                private int wheels;//    
    
                private int color;//     
    
                private int maxSeat;//     
    
                private int maxSpeed;//     
    
                //   ...
    
                /** *      * * @param wheels * @return */
                public Builder setWheels(int wheels) {
                    if (1 >= wheels)
                        wheels = 2;//    2
                    this.wheels = wheels;
                    return this;
                }
    
                /** *      * * @param color */
                public Builder setColor(int color) {
                    this.color = color;
                    return this;
                }
    
                /** *      * * @param maxSeat */
                public Builder setMaxSeat(int maxSeat) {
                    if (4 <= maxSeat)
                        maxSeat = 4;//    4
                    this.maxSeat = maxSeat;
                    return this;
                }
    
                /** *      * * @param maxSpeed */
                public Builder setMaxSpeed(int maxSpeed) {
                    this.maxSpeed = maxSpeed;
                    return this;
                }
    
                /** *      * * @param carConfig */
                private void applyConfig(CarConfig carConfig) {
                    carConfig.color = this.color;
                    carConfig.maxSeat = this.maxSeat;
                    carConfig.maxSpeed = this.maxSpeed;
                    carConfig.wheels = this.wheels;
                }
    
                public CarConfig create() {
                    CarConfig carConfig = new CarConfig();
                    applyConfig(carConfig);
                    return carConfig;
                }
    
            }
    
        }
    

    사용 방식
    CarConfig carConfig = new CarConfig.Builder()
                    .setColor(1)
                    .setMaxSeat(4)
                    .setWheels(4)
                    .setMaxSpeed(200).create();

    장점.
  • 좋 은 포장 성 을 가지 고 건축 자 모델 을 사용 하면 고객 센터 에서 제품 내부 로 구 성 된 디 테 일 을 알 필요 가 없다.
  • 건설 자 는 독립 적 이 고 확장 하기 쉽다.
  • 결점.
    여분의 Builder 대상 과 Director 대상 이 생 겨 메모리 가 소 모 됩 니 다.

    좋은 웹페이지 즐겨찾기