Java设计模式泛型化之建造者模式
来源:互联网 发布:java equals的用法 编辑:程序博客网 时间:2024/06/08 04:27
建造者模式的理解是这样的:
一件事情可以分为有限的几个步骤,或者几个部分。规定了各个步骤或部分的建造方法。然后得到一个具体的事物或者完成该事件。
其结构是这样的:
一个抽象的建造者接口几个具体的建造者实现类一个指挥者一个调用者
具体先看看代码:
抽象建造者接口
public interface Builder {public void buildPartA();public void buildPartB();public void returnResult();}
具体建造者实现类
public class BuilderA implements Builder {@Overridepublic void buildPartA() {System.out.println("Builder A builds part A.");}@Overridepublic void buildPartB() {System.out.println("Builder A builds part B.");}@Overridepublic void returnResult() {System.out.println("Builder A returns part A and part B.");}}
public class BuilderB implements Builder {@Overridepublic void buildPartA() {System.out.println("Builder B builds part A.");}@Overridepublic void buildPartB() {System.out.println("Builder B builds part B.");}@Overridepublic void returnResult() {System.out.println("Builder B returns part A and part B.");}}
指挥者
public class Director {private Builder prod;public Director(Builder prod) {this.prod = prod;}public void build() {prod.returnResult();prod.returnResult();}}
调用者
public class BuilderCaller {public static void main(String[] args) {Builder builderA = new BuilderA();Director directorA = new Director(builderA);directorA.build();Builder builderB = new BuilderB();Director directorB = new Director(builderB);directorB.build();}}
那么该如何泛型化呢?
不难看出,关键就在于Director类。以下是泛型化代码:
@SuppressWarnings("all")public class Director<T extends Builder> {private T t;public Director(Class<? extends Builder> c) {try {t = (T) Class.forName(c.getName()).newInstance();} catch (Exception e) {e.printStackTrace();}}public void build() {t.returnResult();t.returnResult();}}
调用者
public class BuilderCaller {public static void main(String[] args) {Director<BuilderA> dA = new Director<BuilderA>(BuilderA.class);dA.build();Director<BuilderB> dB = new Director<BuilderB>(BuilderB.class);dB.build();}}
当然,你也可以用抽象类来设计。
0 0
- java设计模式之建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- 【Java设计模式】之建造者模式
- java设计模式之建造者模式
- Java--设计模式之建造者模式
- java设计模式之-建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- JAVA设计模式之:建造者模式
- Java设计模式之建造者模式
- Java设计模式之建造者模式
- java设计模式之建造者模式
- Java设计模式之建造者模式
- java设计模式之建造者模式
- My97DatePicker JS时间控件 当前日期前后不能选
- 进程管理之schedule --> pick_next_task()
- Gcc源代码分析,insn和rtx的关系
- java 获取文件后缀名
- Unity3D 2D ToolKit --为你的项目选择Camera
- Java设计模式泛型化之建造者模式
- Java程序员推荐阅读书籍
- 37 Android 导入第三方库
- 遍历文件夹下所有文件及文件夹,批量修改其名称
- 黑马程序员--基础--第二篇--SequenceInputStream和Properties类特殊类
- unix高级编程之14
- 崛起中的九大HTML5开发工具
- 一款免费的中药饮片管理软件
- 05 JSF2-Validation and Converters