码迷,mamicode.com
首页 > 其他好文 > 详细

[Design Patterns] 4. Creation Pattern

时间:2015-02-07 21:29:30      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式的目的是提高代码的可重用性,让代码更容易被他人理解,并保证代码可靠性。它是代码编制真正实现工程化。

四个关键元素:(1) Pattern Name, (2) Problem, (3) Solution, (4) Consequences.

 


 

01. Factory Method Pattern

/* The product should be created by his own factory. */

 

LogFactory factory = new FileLogFactory();
Log log = factory.createLog();

log.writeLog();

任务的分配:

架构师1:定义factory, product接口;

程序员1:完成FileLogFactory类,FileProduct类;

 

问题:只定义产品,又如何?

答:factory类中可以添加如系统版本,环境等不适合由Product处理的信息。

 


 

 

02. Abstract Factory Pattern

一个工厂一般会生产一系列具有相关性的产品,即产品族

在不同的工厂(大环境下)可能生产同一系列的产品族,具有相似的产品等级结构

DBFactory factory= new OracleFactory();  // 什么样的工厂 生产 哪一个产品族的产品们;所以,以下代码是可复用的。

Connection connection = factory.createConnection():
Statement statement = factory.createStatement();

connection.connect();
statement.executeStatement();

任务的分配:

架构师1:定义factory, product接口;

程序员1:完成OracleFactory类,connection类,statement类。

 


 

 

03. Builder Pattern

如果抽象工厂模式是一个汽车配件生产厂,那么构建者模式是一个汽车组装厂,通过对配件的组装返回一台完整的汽车。

构建者模式将复杂对象的构建对象的表现分离开来,这样使得同样的构建过程可以创建出不同的的表现对象。

ActorController ac = new ActorController();
ActorBuilder ab = new AngelBuilder();
Actor angel
= ac.construct(ab); // 什么样的builder/调料包 构建出 什么样的一个角色/方便面 String type = angel.getType(); System.out.println(type + "的外观:"); System.out.println("性别:" + angel.getSex()); System.out.println("面容:" + angel.getFace()); System.out.println("服装:" + angel.getCostume()); System.out.println("发型:" + angel.getHairstyle());

 


 

 

 

 

 

 

 

 

 

 

[Design Patterns] 4. Creation Pattern

标签:

原文地址:http://www.cnblogs.com/jesse123/p/4278625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!