四、Chain of
Responsibility(责任链)描述:一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合,唯一共同点是在他们之间传递request.
也就是说,来了一个请求,A类先处理,如果没有处理,就传递到B类处理,如果没有处理,就传递到C类处理,就这...
分类:
其他好文 时间:
2014-06-02 09:19:29
阅读次数:
303
桥梁模式的用意是:将抽象化和实现化惊醒脱耦,使得两者可以独立的变化。所谓脱耦就是将抽象化和实现化之间的耦合解脱开,也就是强关联变成若关联。强关联就是在编译期就已经确立的,无法在运行时改变;弱关联就是可以动态的确定并且运行期可以改变的关联。继承是强关联,合成、聚合是弱关联。类图:示意性代码:packa...
分类:
其他好文 时间:
2014-06-02 08:57:44
阅读次数:
212
装饰者模式是JDK中另一个使用较多的设计模式,上一个是观察者模式(在Swing中大量使用),业内好的API设计无一离不开常见的设计模式,通常我们所说要阅读源码,也是为了学习大牛们的设计思路。————题记
设计模式
观察者模式:定义了对象之间一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。
装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提...
分类:
其他好文 时间:
2014-06-02 05:31:47
阅读次数:
234
设计模式
单件模式:确保一个类只有一个实例,并提供一个全局访问点。
要点
单件模式确保程序中一个类最多只有一个实例。
在Java中实现单件模式需要私有的构造器、一个静态方法、一个静态变量。
确定在性能和资源上的限制,然后小心翼翼的选择适当的方案来实现单件,以解决多线程问题。
全局变量缺点
如果将对象赋值给一个全局变量,那么必须在程序一开始就创建好对象。万一对象非常耗费...
分类:
其他好文 时间:
2014-06-02 05:00:32
阅读次数:
215
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合。这就是命令模式(Command
Pattern)————题记
设计模式
命令模式:将“请求”封装成对象,以便使用不同...
分类:
其他好文 时间:
2014-06-02 04:59:53
阅读次数:
398
机房收费系统进行有一段时间了,但是始终有些历史遗留问题。比如,如何MDI子窗体如何显示在上层的问题和MDI子窗体实例化的问题。
对于如何显示在上层的问题,我这次采用的还是SetParent函数,在模块里面添加:
'定义一个用来设置子窗体的函数
Declare Function SetParent Lib "user32" Alias "SetParent" (...
我们全都使用别人设计好的库与框架。我们讨论库与框架、利用他们的API编译成我们的程序、享受运用别人的代码所带来的优点。看看java api它所带来的功能:网络、GUI、IO等。库与框架长久以来,一直扮演着软件开发过程的重要角色,我们从中挑选所要的组件,把他们放进合适的地方。但是,库与框架无法帮助我们将应用组织成容易了解、容易维护、具有弹性的架构,所以要设计模式。
设计模式不会直接进入你的代码中,...
分类:
其他好文 时间:
2014-06-02 02:34:58
阅读次数:
254
单例模式(Singleton Pattern)
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。...
分类:
其他好文 时间:
2014-06-02 02:16:50
阅读次数:
273
设计模式
工厂模式:定义一个创建对象的接口,但由子类决定要实例化的是哪一个。工厂方法让类把实例化推迟到子类。
所谓的“决定”,并不是指模式允许子类本身在运行时做决定,而是指在编写创建者类时,不需要知道实际创建的产品是哪一个。选择了使用这个子类,就自然的决定了实际创建的产品是什么。
抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要指定具体类。
抽象工厂的任务时定义一...
分类:
其他好文 时间:
2014-06-02 02:15:39
阅读次数:
255
七、Strategy(策略模式)描述:定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。优点:各个部分之间是弱连接
的关系,弱连接的特性使软件具有更强的可扩展性 ,易于维护 ;更重要的是,它大大提高了软件可重用性 。例子:举例(TreeSet...
分类:
其他好文 时间:
2014-06-02 02:09:10
阅读次数:
266