- 博客(9)
- 收藏
- 关注
原创 设计模式--对职责链模式的思考
职责链模式:将请求的发送者和请求的接收着相分离,用户可以动态的创建职责链,并将请求传入到这条链中,链中的处理类会不断的将该请求向下传递,直到有相关的处理类能够处理它为止。适用范围:当多给对象处理相同的请求的时候。这真是个最接地气的模式。下面是相关实例:某公司在采购商品的审批流程是采购5万元以下(不包含五万)的商品需要主任进行审批,5万以上10万以下(不包含10万)的商品需要副董事长
2014-06-25 12:11:43
452
原创 设计模式--对代理模式的思考之java动态代理
代理模式:给某个对象产生一个代理对象,由代理对象来控制真实的对象引用。功能:在业务方法执行之前或之后插入额外的业务逻辑,从而控制真实的业务方法的调用。下面是相关实例:某公司对外提供商务信息查询操作,但是在查询之前必须进行必要的身份验证,在查询成功后需要将用户查询的次数记录到查询日志中。代理模式的设计:抽象的主题:Searcher真实的主题:RealSearcher代理类
2014-06-24 12:08:38
447
原创 设计模式--对享元模式的思考
享元模式:利用共享技术实现大量细粒度的对象(即状态不会发生改变的对象)的重用。功能:实现大量相同或者是相似的对象的重用。实现享元模式的关键是正确的区分对象的内部状态和外部状态。内部状态就是不会随环境的变化而变化,是可以被共享的部分。外部状态就是会随环境的变化而变化的状态,是不可以被共享的部分。当在使用享元对象的时候只需要将外部状态传到内部状态即可。下面是相关实例:下面是一个围棋游戏
2014-06-22 09:58:46
466
原创 设计模式--对外观模式的思考
外观模式:客户端与子系统类之间的通信是通过一个外观角色进行的,外观角色为客户端和子系统提供了统一的接口,方便客户端的使用和子系统的拓展。下面是相关实例:现在需要设计一个文件加密的系统,该系统包含三个部分,第一部分是读取文件中的明文,第二是给明文进行加密,第三是将加密的信息存放到加密的文件中。以上的描述对应着三个类:FileReader:用于读取明文的文件EncryptFile:
2014-06-21 15:07:43
477
原创 设计模式--对装饰模式的思考
装饰模式:就是动态的对类的功能的增强或者是扩展。下面是以一个实例来理解该模式。现在要设计一个界面组件库,其中包含的组件有窗体(window)、文本框(TextField)、列表(List),现在要为文本框添加黑色边框,为列表添加滚动条,但这种组合并不是固定的有的时候窗体也要添加滚动条,列表需要添加黑色边框和滚动条等各种组合形式。为了灵活的、动态的实现这些需求的话就需要用到装饰模式。
2014-06-17 16:37:40
434
原创 设计模式--对适配器模式的思考
适配器模式:适配器模式就是将一个接口转化成客户希望的另外一个接口,可以使接口不兼容的类也可以进行工作。(是得接口不兼容的类也可以一起工作)现在有一个算法库提供了两个类他们分别实现了快速排序和二分查找的算法,他们分别是QuikeSort、BinarySearch。接口是quickSort()、binarySearch()。现在要实现学生成绩管理系统需要重用这个算法库。但是目标接口(即暴露给用
2014-06-13 11:52:51
513
原创 设计模式--对建造者模式的思考
建造者模式:所谓的建造者模式就是将一个复杂的对象构建与它的表示相分离,使得同样的构建过程可以构建出不同的对象。下面还是拿实例来理解:要设计一个播放器软件,改软件有三种模式,在不同的模式下的显示是不一样的,在完整模式下菜单、播放列表、主窗口、控制条,在精简模式下显示主窗口、控制条,记忆模式下显示主窗口、控制条、收藏列表。很显然统一个播放器软件在不同的模式下的显示状态是不样的,要想实现在不
2014-06-11 12:54:45
440
原创 设计模式--对原型模式的思考
原型模式:所谓的原型模式就是制造出原型对象的副本,副本对象的信息与原对象一致但是却在内存中占用不同的空间。//下面是对原型模式应用实例:某公司需要产生许多信息大致相同的报表,但是报表少量的部分还是需要进行修改的,有需要对报表的修改不会影响到其他的报表信息。//通用的原型设计思想public class ReportForm implements Cloneable{
2014-06-10 10:26:59
361
原创 设计模式--单例设计模式的思考
单列设计模式:就本人理解,所谓的单例就是在程序运行的整个周期,类的实例仅存在一个。说到单例可能大家都会想到两种设计方法:饿汉式和懒汉式。饿汉式://饿汉式的设计public class Sington { //被设计为单例的对象 private static final Student student =new Student();
2014-06-05 08:44:51
480
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅