什么GOF或者这书那书上有很多提到工厂的,简单工厂,工厂方法,抽象工厂,太多了。
工厂 总结一下,工厂,字面上就是根据需要不停生产东东的。
简单工厂就是选择实现,工厂方法说是可以将实现延迟到子类(抽象类实现 定义需要覆写的方法)实现,而抽象工厂则是用接口进行一步抽象实现,从而实现更高层次的隔离。
public static Api createApi(int i){ if(i == 1){ return new ImplA(); } return new ImplB(); }
生成器
分离事件构建算法和部件构造。
咋一看很像工厂+外观,将实现封装一下,通过传入相应的参数选择性实现内部细节。但是,这种模式还是有其优雅的一面。它分离了整体构建算法和部件构造。这里的部件说白了就是上面工厂中选择实现的条件i.只不过是一个对象,而且对象内部包含一些数据罢了。如果能将部件的构造与构建算法完成隔离还是不错的,即,再新创建一个部件,可以用其中的算法来执行结果。
TxtBuilder tb = new TxtBuilder(); //构造部件,这里是生成txt,还可以是doc.... Director d = new Director(tb);//算法,执行部分。 //构建算法接口 public interface Builder { public void builderHeader(List<String[]> list); public void buildBody(List<String[]> list); public void buildFooter(List<String[]> list); }
命令模式
一直认为它是外观的一种延伸,如果能将这些做到可撤销操作,则这就是它的一个亮点。封装请求,参数化配置,可撤销回滚。
命令模式样式很简单,就是后面会有调用A完成某功能,调用B完成某功能…………
模板方法
定义一个操作中的固定的算法骨架,而将一些步骤延迟到子类完成,使子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。避免重复代码及增加可扩展性。如下的getpass方法就类似于集合类中的comparator排序一样。
public abstract class LoginTemplate { public boolean login(String user,String pass) { if(pass.equals(getPass(user))) return true; return false; } public abstract String getPass(String user); }
public class UserLogin extends LoginTemplate { @Override public String getPass(String user) { return user+"password"; } }
与
public class IdLogin extends LoginTemplate { @Override public String getPass(String id) { // TODO 通过Id取密码 return null; } }
根据不同的情况选择不同的实现。
组合
统一叶子对象与组合对象的访问等操作方式。将对象的部分-整体层次结构的操作统一起来,使结构更简单。简单了客户端的调用。是否JMX中的composite即是这种的体现??避免环状引用。
Composite c1 = new Object();
Composite c2 = new Object();
c1.add(new Object());
c2.add(c1);
相关推荐
设计模式--抽象工厂模式实现多数据库连接 设计模式,.net设计模式,抽象工厂
设计模式--工厂模式java例子
创建型设计模式---工厂设计模式实现
java设计模式--工厂模式 HeadFirst 书中的源代码
NET设计模式--工厂方法例子源码
创建型设计模式----抽象工厂模式
设计模式 - 抽象工厂模式
java设计模式----抽象工厂模式,简单工厂模式代码 代码内部
设计模式--模板方法模式java例子
设计模式---抽象工厂模式(Abstract Factory)-UML图 (StarUML)
c++设计模式-创建型模式-工厂方法模式-最简单的源码-qt工程
java设计模式-创建者模式-简单工厂模式。详细的讲解了什么是抽象工厂模式及应用场景和应用场景的代码事例。及各工厂模式的区别。
北风网-设计模式-简单工厂模式ppt 带程序
设计模式-简单工厂模式-披萨店C#语言版 如有学习讨论意向请联系我吧~ hzher@qq.com
设计模式习题答案-抽象工厂、生成器.ppt
设计模式-抽象工厂模式(讲解及其实现代码)
设计模式_--_工厂模式和单件模式设计模式_--_工厂模式和单件模式
java常用设计模式-抽象工厂模式
C++设计模式-创建型模式-简单工厂模式源码
c++设计模式-创建型-抽象工厂方法-最简单源码-qt工程