h5网站源代码,沧州有做网站的吗,中国营销网官网,网站建设设计制建造者模式#xff1a;像是模板方法模式的升级。也叫生成器模式。将一个复杂对象的构造与它的表示分离#xff0c;使得同样的构建过程可以创建不同的表示。其实就是创建一大类的东西#xff0c; 但是具体又有些差异。 在建造者模式中#xff0c;一般有四个角色#xff1a;…建造者模式像是模板方法模式的升级。也叫生成器模式。将一个复杂对象的构造与它的表示分离使得同样的构建过程可以创建不同的表示。其实就是创建一大类的东西 但是具体又有些差异。 在建造者模式中一般有四个角色 1Product产品类。 该类一般实现了模板方法模式。 2Builder抽象的建造者。 规范产品的组建一般是由子类实现。 3ConcreteBuilder具体的建造者。 实现抽象类定义的所有方法并且可以返回一个组建好的具体对象。 4Director导演类(一般是包涵多种具体产品差异的方法)。 大致示例代码 Product类 1 package com.yemaozi.builderpattern;
2
3 public abstract class Product {
4 //一般实现模板方法的抽象类。
5 } 具体的Product类 //ProductA
package com.yemaozi.builderpattern;public class ProductA extends Product{public void doSomething(){}
}
//ProductB
package com.yemaozi.builderpattern;public class ProductB extends Product{public void doSomethding(){}
} 建造器 1 package com.yemaozi.builderpattern;
2
3 public interface Builder {
4 //设置产品不同的方法
5 public abstract void setPart();
6 //构建产品
7 public abstract Product builderProduct();
8 } 具体的建造器具体的建造器个数与具体产品类的数目一致。 1 //ConcreteBuilderA2 package com.yemaozi.builderpattern;3 4 public class ConcreteBuilderA implements Builder{5 6 Product p new ProductA();7 8 public void setPart() {9 }
10
11 public Product builderProduct() {
12 return p;
13 }
14 }
15 //ConcreteBuilderB
16 package com.yemaozi.builderpattern;
17
18 public class ConcreteBuilderB implements Builder{
19
20 Product p new ProductB();
21
22 public void setPart() {
23 }
24
25 public Product builderProduct() {
26 return p;
27 }
28 } 导演类导演类一般是为了预设置不同产品差异的若是想得到对应的产品直接到Director里获取因为该类就是为了生产出所有的产品以供获取。导演类一般可以有多个。 1 package com.yemaozi.builderpattern;2 3 public class Director {4 private Builder b1 new ConcreteBuilderA();5 private Builder b2 new ConcreteBuilderB();6 //构建A产品7 public Product getProductA(){8 b1.setPart();9 Product p b1.builderProduct();
10 return p;
11 }
12 //构建B产品
13 public Product getProductB(){
14 b2.setPart();
15 return b2.builderProduct();
16 }
17 } 此外建造者模式还有一个重要的角色就是零件理解为产品类里的方法建造者是通过零件的组装来创建对象。组装顺序不同(调用方法顺序不同)建造的对象就会有着差异也是建造者模式要表达的核心意义。说白了建造者最主要的功能是基本方法的调用顺序的安排。 和工厂模式的差异 工厂方法模式重点是创建。创建零件是它的主要职责组装顺序不是它关心的。 建造者模式重点是对已产生的零件进行组装。从而也达到创建对象的效果。 转载于:https://www.cnblogs.com/yemaozistar/p/4158764.html