
设计模式
文章平均质量分 86
zhongweij
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java读取文件输出流出现的问题
ServletOutputStream outStream = null; try { outStream = rundata.getResponse().getOutputStream(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); ...2009-08-31 17:01:00 · 171 阅读 · 0 评论 -
简单工厂方法
简单工厂模式又叫做静态工厂方法模式,根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个共同的父类和共同的方法,但每个方法 执行的行为不同。简单工厂模式实际上不属于 23 个 GOF 模式,但它可以作为工厂方法模式的一个引导。 工厂模式如何工作: 工厂类( Creator )角色:该角色是工厂方法模式的核心,含有按照一定商业逻辑创建产品。工厂类在客户端的...原创 2010-12-14 16:54:22 · 132 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品具体类型的情况下,创建多个产品族中的产品对象。这就是抽象工厂模式的用意。 每个模式都是针 对一定问题的解决方案。抽象工厂模式面对的问题是多产品等级结构的系统设计。 在学习抽象工厂具体实例之前,应该明白两个重要的概念:产品族和产品等级。 产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如AMD的...原创 2010-12-15 20:43:32 · 116 阅读 · 0 评论 -
工厂方法
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的 实例化延迟到其子类。 适用性 在下列情况下可以使用Factory Method模式: • 当一个类不知道它所必须创建的对象的类的时候。 • 当一个类希望由它的子类来指定它所创建的对象的时候。 • 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类 是代理...原创 2010-12-15 20:53:37 · 127 阅读 · 0 评论 -
原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 适用性 当一个系统应该独立于它的产品创建、构成和表示时,要使用P r o t o t y p e模式;以及 • 当要实例化的类是在运行时刻指定时,例如,通过动态装载;或者 • 为了避免创建一个与产品类层次平行的工厂类层次时;或者 • 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们 ...原创 2010-12-15 20:58:53 · 121 阅读 · 0 评论 -
单例模式
意图 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可、以被创建(通过截取创建新对象的请求) ,并且它可以提供一个访问该实例的方法。这就是Singleton模式 适用性 在下面的情况下可以使用S i n g l e t o n模式 • 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。 • 当这个唯一实...原创 2010-12-15 21:01:21 · 104 阅读 · 0 评论 -
组合模式
意图 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象 和组合对象的使用具有一致性。 适用性 以下情况使用Composite模式: • 你想表示对象的部分-整体层次结构。 • 你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。、 效果 Composite模式 • 定义了包含基本对象和组合对象的类层次结...原创 2010-12-15 21:04:00 · 214 阅读 · 0 评论 -
门面模式
意图 为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接 适用性 在遇到以下情况使用Facade模式 • 当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容 易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可...原创 2010-12-15 21:04:51 · 111 阅读 · 0 评论 -
命令,不要去询问(Tell, Don’t Ask)”原则
我看到的最多被违反的原则是“命令,不要去询问(Tell, Don’t Ask)”原则。这个原则讲的是,一个对象应该命令其它对象该做什么,而不是去查询其它对象的状态来决定做什么(查询其它对象的状态来决定做什么也被称作‘功能嫉妒(Feature Envy)’)。 这篇文章里有个很生动的例子,我至今记忆犹新: if (person.getAddress().getCountry()...原创 2012-08-02 23:27:52 · 780 阅读 · 1 评论