![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 设计模式
文章平均质量分 81
痕枫冷
geek,喜欢研究技术
展开
-
常见设计模式之Abstract Factory篇
Abstract工厂模式在日常工作中比较常见,往往使用该模式的目的是为了简化客户端的应用。对于一系列的子类,客户端不必要分别创建每个子类,而是直接处理超类(该超类一般为借口或者抽象类)。而实例化具体的类则推迟到子类工厂中进行,从而当子类改变时,客户端并不知道,因为它 是对超类进行处理的。 具体使用场合,Design Pattern总结如下:1. 系统应该对相应子类的构建、组合和代表的原创 2012-05-07 22:40:49 · 736 阅读 · 1 评论 -
常见设计模式之Builder篇
Builder设计模式同Abstract Factory一样,均属于构造对象之类。但是Builder对象一般用于对象较为复杂,需要一步步构建的情况。比如造一辆汽车,可能会牵扯到一些零件,而这些零件又会分配给不同的工厂去构建,等所有的零件都创造好了之后,再进行最后的组装,这个时候就可以使用Builder模式了。另外还有一个比较常见的情况是,一个对象的状态比较复杂,假如让客户端直接调用该对象的原创 2012-05-09 00:41:08 · 797 阅读 · 0 评论 -
常见设计模式之Memento模式
package net.liuyx.test;import java.io.Closeable;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOExceptio原创 2012-05-28 18:05:42 · 579 阅读 · 0 评论 -
常见设计模式之Proxy篇
根据Design Pattern描述,常用Proxy设计模式分为四种:virtual proxy, remote proxy,protection proxy和smart reference,相应的句子如下:1. A remote proxy provides a local representative for an object in a different address space原创 2012-05-14 00:15:38 · 714 阅读 · 2 评论 -
装饰器模式
装饰器模式应用于下面的场景:不确定客户端对某个类的对象需要什么功能,所以一般只给客户端一个默认的实现,具有基本的功能。比如对于InputStream这个抽象类会有一个FileInputStream的实现,这个实现提供文件输入流的基本功能。但是有时候客户端会加个缓冲功能,或者想把一个InputStream或者其子类转换成DataInputStream为了实现跨平台,我们可以把已经传在的对象传进构原创 2012-05-17 18:17:51 · 596 阅读 · 0 评论 -
android View.OnClickListener条件调度程序重构为Command模式
今天试着将公司的一大堆的android View.OnClickListener条件调度程序重构为Command模式,经测试,程序没有出错,代码的可读性高了,而且消除了不少重复代码,先将原始代码和重构后的代码贴至如下:1.原先代码:private void pull_to_refresh() { NavigationTextView textView; for (int i = 0;原创 2012-06-05 10:51:33 · 2159 阅读 · 2 评论 -
常见设计模式之Chain of Responsibility模式
责任链模式应用于多个对象可以处理同一个请求的情况,为了简化客户端的调用,客户端只需将一个请求提交到处理对象中(简化客户端后调用后,客户端并不知道该把请求转发到哪个对象中),处理对象会自动寻找一些列的对象处理该对象,若对象的请求成功处理,那么请求转发就终止,否则,一直往下传递请求。其实这个应用场景在日常生活中很常见,比如找领导签字,下面是一个简单的找领导签字的demo,注释都写好了,比较简单原创 2012-05-18 11:56:59 · 672 阅读 · 0 评论 -
常见设计模式之Composite模式
Composite模式应用于客户端忽略单独的对象和组合对象之间的区别时,对于客户端而言,单独的对象和多个对象的组合同样处理,也就是说,当组合对象的数量减少或者增多时,客户端代码不用改变。下面是一个简单的Composite模式,展示了两种男人追求女孩子的策略,一种是单枪匹马,另一种是靠朋友的帮忙来追求女孩子。好了,先看代码:package net.liuyx.test;import原创 2012-05-20 12:38:50 · 514 阅读 · 0 评论 -
Flyweight模式
package net.liuyx.test;import java.util.HashMap;import java.util.Map;import net.liuyx.test.FlyweightFactory.Flyweight;public class FlyweightTest { public static void main(String[] args原创 2012-05-26 22:52:57 · 552 阅读 · 0 评论