模式
iteye_19520
这个作者很懒,什么都没留下…
展开
-
模式与原则
最近看了一些模式和方法论的东西。 在这五十多种模式中,不少都是在开发过程中,我们经常用的,虽然我们不知道这种做法应该叫什么模式。 但是大部分,是需要我们在编码中有意识地去实践的。 以模式指导实践,是软件工程的一个好习惯,无论是架构模式,设计模式,还是成例模式。 说起“原则”这两个字,可以扯一点。 原则组成了我们的人生观。 原则是“本”,本立而道生。 如果说人生...2008-05-21 13:32:13 · 82 阅读 · 0 评论 -
温习-策略模式
下面的情况考虑使用策略模式: 1、一个系统中有许多类,他们的区别仅在于他们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。 2、一个系统需要动态地在几种算法中选择一种,那么这些算法可以包装到一个个具体的算法类里面,而这些算法类都是一个抽象算法类的子类。换言之,这些具体算法类都有统一的接口,由于多态性原则,客户端可以选择使用任何一个具体算法类。并只持有一个数据类型是抽象...2008-11-26 16:04:49 · 137 阅读 · 0 评论 -
深入浅出Java模式设计之模板方法模式
一、引子 这是一个很简单的模式,却被非常广泛的使用。之所以简单是因为在这个模式中仅仅使用到了继承关系。 继承关系由于自身的缺陷,被专家们扣上了“罪恶”的帽子。“使用委派关系代替继承关系”,“尽量使用接口实现而不是抽象类继承”等等专家警告,让我们这些菜鸟对继承“另眼相看”。 其实,继承还是有很多自身的优点所在。只是被大家滥用的似乎缺点更加明显了。合理的利用继承关系,还是能对...2008-06-24 00:07:20 · 88 阅读 · 0 评论 -
Java中的模式 --- 命令模式
一,命令模式的实现:命令模式里边一般都有以下几个角色:客户端,请求者,命令接口,命令实现,接受者,下边是简单命令模式的实现代码实现: 1 public class Client{ 2 public static void main(String[] args){ 3 Receiver receiver = new Receiver(); 4 ...2008-06-19 22:26:06 · 121 阅读 · 0 评论 -
软件的可维护性和可复用性
ξ 3.1 软件系统的可维护性☆ 导致一个软件设计的可维护性较低,也就是说会随着性能要求的变化二“腐烂”的真正原因有四个: ① 过于僵硬 加入一个新性能,不仅仅意味着建造一个独立的模块,而且因为这个新性能会波及很多其他的模块,最好变成跨越几个模块的改动。 ② 过于脆弱 对一个地方的修改,往往会导致看上去没什么关系的另外一个地方发生故障。尽管在修改之前,设计师会尽力预测可能的故障点,当是修...2008-06-14 14:24:23 · 180 阅读 · 0 评论 -
开闭原则
ξ 4.1 什么是开闭原则☆ 开闭原则指的是一个软件实体应对对扩展开发,对修改关闭(Software entities should be open forextension, but closed formodification)。这个原则是说在设计一个模块的时候,应对使这个模块可以在不被修改的前提下被扩展,换言之,应对可以不必修改源代码的情况下改变这个模块的行为。☆ 满足开闭原则的软...2008-06-14 13:38:55 · 73 阅读 · 0 评论 -
依赖倒转原则
☆ 依赖倒转原则,要依赖于抽象,而不要依赖于具体实现。ξ 8.3 依赖倒转原则☆ 三种耦合关系① 零耦合关系,如果两个类没有耦合关系,就称之为零耦合;② 具体耦合,具体耦合发生在两个具体的类之间,经由一个类对另外一个具体类的直接引用造成的。③ 抽象耦合关系,抽象耦合关系发生在一个具体类和一个抽象类之间,使用两个必须发生关系的类之间存在有最大的灵活性。☆ 依赖倒转原则的另外一种表述是:...2008-06-14 13:15:32 · 70 阅读 · 0 评论 -
java设计模式之设计原则
1.开—闭原则(Open-Closed Principle, short for OCP) 该原则讲一个软件实体应当对扩展开放,对修改关闭。说的是在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。换言之,应当可以在不必修改源代码的情况下改变这个模块的行为。实现开闭原则的关键是抽象化。在"开—闭"原则中,不允许修改的是抽象的类或者接口,允许扩展的是具体的实现类,抽象类和接...2008-06-14 13:02:30 · 102 阅读 · 0 评论 -
“is a”和“has a”的区别
“isa”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。因此在用Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。“has a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux...2008-06-14 12:53:51 · 510 阅读 · 0 评论 -
复用的基本种类
复用的基本种类:合成/聚合复用:优点:* 新对象存取成分对象的唯一方法是通过成分对象的接口。* 这种复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的。* 这种复用支持包装。* 这种复用所需的依赖较少。* 每一个新的类可以将焦点集中在一个任务上。* 这种复用可以在运行时间内动态进行,新对象可以动态的引用与成分对象类型相同的对象。缺点:* 系统中会有比较多的对象需要管...2008-06-14 12:47:18 · 780 阅读 · 0 评论 -
合成/聚合复用原则
☆ 合成/聚合复用原则经常又叫做合成复用原则。该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。ξ 10.1 合成与聚合的区别合成和聚合均是关联的特殊情况。聚合用来表示“拥有”关系或者整体与部分的关系;而合成则用来表示一种强得多的“拥有”关系。在一个合成关系里面,部分和整体的生命周期是一样的。一个合成的新的对象完全拥有...2008-06-14 12:45:21 · 117 阅读 · 0 评论 -
第五个设计模式:合成模式
第五个设计模式:合成模式合成模式把部分和整体关系用树结构表示,是属于对象的结构模式。合成模式要对组合的对象进行管理,所以在一定位置给予对象的相关管理方法,如:add(),remove()等.合成模式中对象的管理有两种方案。1.安全方式:此方式只允许树枝构件有对象的管理方法。2.透明方式:此方式只允许树枝和树叶都有对象的管理方法,但树叶对象中的管理方法无实际意义。一.UML...2008-06-14 12:26:08 · 114 阅读 · 0 评论 -
Effective java学习笔记1:考虑使用静态工厂方法代替构造方法
我们要得到一个对象,马上想到构造方法,其实,静态工厂方法也可以替我们做到。例如,在jdk1.4里面,Boolean用了一个静态方法来得到一个boolean对象:public static Boolean valueOf(boolean b)question:这个方法实际上并不返回一个object?对的, sun的jdk 帮助里面讲: If a new Boolean instanc...2008-06-12 21:52:00 · 127 阅读 · 0 评论 -
java设计模式之工厂模式(简单工厂方法)
工厂模式总述 工厂模式属于类的创建模式,工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,而不必事先知道每次要实例化哪一个类。工厂模式有三个基本形态:1. 简单工厂(Simple Factory)模式,又称静态工厂方法模式(Static Factory MethodPattern)。2. 工厂方法(Factory Method)模式,又称多态性工厂(P...2008-06-12 21:32:45 · 92 阅读 · 0 评论 -
设计模式之Visitor
设计模式之Visitor板桥里人 http://www.jdon.com 2002/05/05(转载请保留) Visitor访问者模式定义 作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作.在Java中,Visitor模式实际上是分离了coll...2008-05-26 14:15:17 · 79 阅读 · 0 评论 -
深入浅出Java的访问者模式
一、引子 对于系统中一个已经完成的类层次结构,我们已经给它提供了满足需求的接口。但是面对新增加的需求,我们应该怎么做呢?如果这是为数不多的几次变动,而且你不用为了一个需求的调整而将整个类层次结构统统地修改一遍,那么直接在原有类层次结构上修改也许是个不错的主意。 但是往往我们遇到的却是:这样的需求变动也许会不停的发生;更重要的是需求的任何变动可能都要让你将整个类层次结构修改个底朝...2008-05-26 00:09:45 · 119 阅读 · 0 评论 -
简单工厂模式
1、简单工厂模式,是类的创建模式。 2、工厂模式负责将大量有共同接口的对象实例化。包括三种类型: 简单工厂模式,又叫静态工厂方法模式。 工厂方法模式,又叫多态性工厂模式。 抽象工厂模式,又称工具箱模式。 3、简单工厂模式的角色:工厂类角色:简单工厂模式的核心,含有与应用相关的业务逻辑。在客户端调用下创建产品对象,往往由一个JAVA类实现。 抽象产品角色:工厂方法模式所创建...2008-05-22 14:51:48 · 68 阅读 · 0 评论 -
状态模式和策略模式的比较
状态模式(state pattern)和策略模式(strategy pattern)的实现方法非常类似,都是利用多态把一些操作分配到一组相关的简单的类中,因此很多人认为这两种模式实际上是相同的。然而在现实世界中,策略(如促销一种商品的策略)和状态(如同一个按钮来控制一个电梯的状态,又如手机界面中一个按钮来控制手机)是两种完全不同的思想。当我们对状态和策略进行建模时,这种差异会导致完...2008-05-22 01:18:40 · 76 阅读 · 0 评论 -
【转】话说状态模式和策略模式
图1:策略模式类图 图2:状态模式类图 熟悉uml类图的朋友,可以看出,策略模式的类图和状态模式的类图实现是很相似的,这也是为什么设计模式中,我们把这两种模式比喻成为孪生兄弟,很多时候,我们在运用上述模式来解决实际问题的时候,也经常混淆他们,其实,个人倒是认为,就算大家用法不同其实也没有必要介意,因为设计模...原创 2008-11-26 17:07:17 · 139 阅读 · 0 评论