zoukankan      html  css  js  c++  java
  • 设计模式之建造者模式 Builder

    • 本质与使用场景

    public interface AirShipBuilder {
    
        Engine builderEngine();
        OrbitalModule builderOrbitalModule();
        EscapeTower  builderEscapeTower();
    
    }
    
    public class SxtAirShipBuilder implements AirShipBuilder{  //StringBuilder,以后学习XML解析中,JDOM库中的类:DomBuilder,SaxBuilder
    
        @Override
        public Engine builderEngine() {
            System.out.println("构建尚学堂牌发动机");
            return new Engine("尚学堂牌发动机");
        }
    
        @Override
        public OrbitalModule builderOrbitalModule() {
            System.out.println("构建尚学堂牌轨道舱");
            return new OrbitalModule("尚学堂牌轨道舱");
        }
    
        @Override
        public EscapeTower builderEscapeTower() {
            System.out.println("构建尚学堂牌逃逸塔");
            return new EscapeTower("尚学堂牌逃逸塔");
        } 
    
    }
    飞船Builder接口及其实现类
    public interface AirShipDirector {
        
        AirShip directAirShip();
    }
    
    public class SxtAirShipDirector implements AirShipDirector{
    
        private AirShipBuilder builder;
            
        public SxtAirShipDirector(AirShipBuilder builder) {
            super();
            this.builder = builder;
        }
    
    
        @Override
        public AirShip directAirShip() {
            
            Engine e = builder.builderEngine();
            OrbitalModule o  = builder.builderOrbitalModule();
            EscapeTower et = builder.builderEscapeTower();
            
            //装配
            AirShip ship = new AirShip();
            ship.setEngine(e);
            ship.setEscapeTower(et);
            ship.setOrbitalModule(o);
            
            return ship;
        }
    
    }
    飞船组装Director接口及其实现
    public class AirShip {
        
        private OrbitalModule orbitalModule;  //轨道舱
        private Engine engine;                //发动机
        private EscapeTower escapeTower;      //逃逸塔
        
        public void launch(){
            System.out.println("发射!!");
        }
        
        public OrbitalModule getOrbitalModule() {
            return orbitalModule;
        }
        public void setOrbitalModule(OrbitalModule orbitalModule) {
            this.orbitalModule = orbitalModule;
        }
        public Engine getEngine() {
            return engine;
        }
        public void setEngine(Engine engine) {
            this.engine = engine;
        }
        public EscapeTower getEscapeTower() {
            return escapeTower;
        }
        public void setEscapeTower(EscapeTower escapeTower) {
            this.escapeTower = escapeTower;
        }
    }
    
    class OrbitalModule{
        private String name;
    
        public OrbitalModule(String name) {
            super();
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
    class Engine{
        private String name;
    
        public Engine(String name) {
            super();
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    
    class EscapeTower{
        private String name;
    
        public EscapeTower(String name) {
            super();
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    飞船类
    public class Client {
        
        public static void main(String[] args) {
            AirShipDirector director = new SxtAirShipDirector(new SxtAirShipBuilder());
            AirShip ship = director.directAirShip();
            System.out.println(ship.getEngine().getName());
            
            ship.launch();
        }
    }
    调用
  • 相关阅读:
    价值理论的出发点和落脚点都是人--以人为本
    价值理论是人类决策和行为的标尺
    事实判断和价值判断
    什么是价值理论?---人们认识世界和改造世界的过程可分解为四个基本阶段
    大人只看利弊 小孩才分对错
    为人处世、事实判断和价值判断皆不可少--人类认识客观事物的标尺:对错与利弊
    知行之间--价值与真理--行动的标尺
    事实判断与价值判断之间的桥梁就是人的需要
    10分钟梳理MySQL核心知识点
    postman设置环境变量,实现一套接口根据选择的环境去请求不同的url
  • 原文地址:https://www.cnblogs.com/qingdaofu/p/7466216.html
Copyright © 2011-2022 走看看