美文网首页
建造者模式(1)-盖房子

建造者模式(1)-盖房子

作者: Shaw_Young | 来源:发表于2020-12-04 02:19 被阅读0次

    盖房项目需求

    1. 需要建房子: 这以过程为打桩、砌墙、封顶
    2. 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的
    3. 请编写程序,完成需求
    package com.young.builder;
    
    /**
     * @author Shaw_Young
     * @date 2020/10/6 20:16
     */
    public abstract class AbstractHouse {
    
        /**
         * 打地基
         */
        public abstract void buildBasic();
    
        /**
         * 砌墙
         */
        public abstract void buildWall();
    
        /**
         * 封顶
         */
        public abstract void roofed();
    
        public void build() {
            buildBasic();
            buildWall();
            roofed();
        }
    
    }
    
    package com.young.builder;
    
    /**
     * @author Shaw_Young
     * @date 2020/10/6 20:18
     */
    public class CommonHouse extends AbstractHouse {
        @Override
        public void buildBasic() {
            System.out.println("给普通房子打地基");
        }
    
        @Override
        public void buildWall() {
            System.out.println("给普通房子砌墙");
        }
    
        @Override
        public void roofed() {
            System.out.println("给普通房子封顶");
        }
    }
    
    package com.young.builder;
    
    /**
     * @author Shaw_Young
     * @date 2020/10/6 20:19
     */
    public class Client {
    
        public static void main(String[] args) {
            CommonHouse commonHouse = new CommonHouse();
            commonHouse.build();
        }
    
    }
    

    传统方式解决盖房需求问题分析

    1. 优点是比较好理解,检点易操作
    2. 设计的程序结构,过于简单,没有设计缓存层对象,程序的扩展和维护不好,也就是说,这种设计方案,把产品(即:房子)和创建产品的过程(即:建房子流程)封装在一起,耦合性增强了
    3. 解决方案: 将产品和产品建造过程解耦=>建造者模式

    相关文章

      网友评论

          本文标题:建造者模式(1)-盖房子

          本文链接:https://www.haomeiwen.com/subject/wdztpktx.html