zoukankan      html  css  js  c++  java
  • 第一节:传统方式完成需求

    一、需求分析

      1) 需要建房子:这一过程为打桩、 砌墙、封顶
      2) 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.

    二、代码实现

      1、UML 类图  

                    

      2、代码实现

     1 public abstract class AbstractHouse {
     2 
     3     //打地基
     4     public abstract void buildBasic();
     5     //砌墙
     6     public abstract void buildWalls();
     7     //封顶
     8     public abstract void roofed();
     9 
    10     public void build() {
    11         buildBasic();
    12         buildWalls();
    13         roofed();
    14     }
    15 }
    16 
    17 ------------------------------------------------
    18 /**
    19  * 普通房子
    20  */
    21 public class CommonHouse extends AbstractHouse{
    22     @Override
    23     public void buildBasic() {
    24         System.out.println(" 普通房子打地基 ");
    25     }
    26 
    27     @Override
    28     public void buildWalls() {
    29         System.out.println(" 普通房子砌墙 ");
    30     }
    31 
    32     @Override
    33     public void roofed() {
    34         System.out.println(" 普通房子封顶 ");
    35     }
    36 }
    37 ------------------------------------------------
    38 public class HigeHouse extends AbstractHouse {
    39     @Override
    40     public void buildBasic() {
    41         System.out.println(" 高楼打地基 ");
    42     }
    43 
    44     @Override
    45     public void buildWalls() {
    46         System.out.println(" 高楼砌墙 ");
    47     }
    48 
    49     @Override
    50     public void roofed() {
    51         System.out.println(" 高楼封顶 ");
    52     }
    53 }

        测试代码:

     1 /**
     2  * 传统方式解决盖房需求问题分析
     3  * 1) 优点是比较好理解,简单易操作。
     4  * 2) 设计的程序结构,过于简单,没有设计缓存层对象,程序的扩展和维护不好. 也就
     5  * 是说,这种设计方案,把产品(即:房子) 和 创建产品的过程(即:建房子流程) 封
     6  * 装在一起,耦合性增强了。
     7  * 3) 解决方案:将产品和产品建造过程解耦 => 建造者模式.
     8  */
     9 public class Client {
    10     public static void main(String[] args) {
    11         CommonHouse commonHouse = new CommonHouse();
    12         commonHouse.build();
    13 
    14         System.out.println("---------------");
    15 
    16         HigeHouse higeHouse = new HigeHouse();
    17         higeHouse.build();
    18     }
    19 }

    三、分析

      1、优点是比较好理解,简单易操作;

      2、设计的程序结构,过于简单,没有设计缓存层对象,程序的扩展和维护不好;也就是说,这种设计方案,把产品(即:房子) 和 创建产品的过程(即:建房子流程) 封装在一起,耦合性增强了。

      3、解决方案:将产品和产品建造过程解耦 =》建造者模式

  • 相关阅读:
    Android的数据存储
    Servlet第一天
    JavaScript高级程序设计读书笔记(3)
    Interesting Papers on Face Recognition
    Researchers Study Ear Biometrics
    IIS 发生意外错误 0x8ffe2740
    Father of fractal geometry, Benoit Mandelbrot has passed away
    Computer vision scientist David Mumford wins National Medal of Science
    Pattern Recognition Review Papers
    盒模型bug的解决方法
  • 原文地址:https://www.cnblogs.com/niujifei/p/14255874.html
Copyright © 2011-2022 走看看