第一節:傳統方式完成需求
阿新 • • 發佈:2021-01-09
一、需求分析
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、解決方案:將產品和產品建造過程解耦 =》建造者模式