zoukankan      html  css  js  c++  java
  • 建造者模式

    public class Bike { 
    
        private IFrame frame; 
        private ISeat seat; 
        private ITire tire; 
        
        public IFrame getFrame() { 
            return frame; 
        } 
        public void setFrame(IFrame frame) { 
            this.frame = frame; 
        } 
        public ISeat getSeat() { 
            return seat; 
        } 
        public void setSeat(ISeat seat) { 
            this.seat = seat; 
        } 
        public ITire getTire() { 
            return tire; 
        } 
        public void setTire(ITire tire) { 
            this.tire = tire; 
        } 
    } 
    // 抽象 builder 类 
    public abstract class Builder { 
        abstract void buildFrame(); 
        abstract void buildSeat(); 
        abstract void buildTire(); 
        abstract Bike createBike(); 
    } 
    // 具体 builder 类 
    public class MobikeBuilder extends Builder{ 
        private Bike mBike = new Bike(); 
        @Override 
        void buildFrame() { 
            mBike.setFrame(new AlloyFrame()); 
        } 
        @Override 
        void buildSeat() { 
            mBike.setSeat(new DermisSeat()); 
        } 
        @Override 
        void buildTire() { 
            mBike.setTire(new SolidTire()); 
        } 
        @Override 
        Bike createBike() { 
            return mBike; 
        } 
    } 
    
    public class OfoBuilder extends Builder{ 
        private Bike mBike = new Bike(); 
        @Override 
        void buildFrame() { 
            mBike.setFrame(new CarbonFrame()); 
        } 
        @Override 
        void buildSeat() { 
            mBike.setSeat(new RubberSeat()); 
        } 
        @Override 
        void buildTire() { 
            mBike.setTire(new InflateTire()); 
        } 
        @Override 
        Bike createBike() { 
            return mBike; 
        } 
    } 
    public class Director { 
        private Builder mBuilder = null; 
        public Director(Builder builder) { 
            mBuilder = builder; 
        } 
        public Bike construct() { 
            mBuilder.buildFrame(); 
            mBuilder.buildSeat(); 
            mBuilder.buildTire(); 
            return mBuilder.createBike(); 
        } 
    }

    个人理解:建造者模式就是应用在那些属性比较多,比较复杂的类中。不用自己来创建类,只需要交给director来给你组织,然后交给builder去完成.

  • 相关阅读:
    Java 中的按值传递
    字符串排序(非字典排序)
    字符串匹配的KMP算法(转)
    效率更高的整数转化为字符串函数
    Trie 树(转)
    C 语言字符串(译)
    linux 下 epoll 编程
    CSS攻击:记录用户密码
    Wireshark(抓包神器)使用方法
    搭建KVM环境——Linux上安装KVM带web管理界面
  • 原文地址:https://www.cnblogs.com/lzh66/p/13301573.html
Copyright © 2011-2022 走看看