随笔 - 424  文章 - 0  评论 - 13  阅读 - 90万

随笔分类 -  Pattern

观察者模式
摘要:在实际应用中,当一个对象关注另一个对象的变化时,可以采取轮询的方式,也可以采用观察者模式来实现。 采用观察者模式时,被关注者发生变化时会去通知在其上注册的观察者。Swing中就大量的用到了观察者模式来实现监听组件状态的变化。 观察者模式的类图如下: Subject上注册关注其变... 阅读全文
posted @ 2015-08-30 20:53 lnlvinso 阅读(261) 评论(0) 推荐(0) 编辑
策略模式(Strategy Method)
摘要:策略模式可以看做“可插入式算法(Pluggable)”,将子类各自的行为和公共的逻辑分离开来,将子类的行为抽象为算法插入到公共的逻辑中,这样替换子类的行为也不会对公共逻辑产生影响,也不会影响到调用类的逻辑。 下面是一个策略模式的简单例子,类图如下: 公共逻辑Context的代码如下:pu... 阅读全文
posted @ 2014-12-13 22:50 lnlvinso 阅读(898) 评论(0) 推荐(0) 编辑
模板模式
摘要:模板模式(Template Method)是较为常见的设计模式之一。 模板模式简言之就是将公共的方法抽取到超类中,需要子类要实现的方法设置为抽象方法,由子类去完成具体的实现。 模板方式的类图如下所示: 下面是一个模板模式的例子,首先是抽象类: abstract public class ... 阅读全文
posted @ 2014-12-09 22:26 lnlvinso 阅读(205) 评论(0) 推荐(0) 编辑
门面模式
摘要:门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 门面模式有三个角色组成: 门面角色( facade ):这是门面模式的核心。它被客户角色调用,因此它熟悉子系统的功能。它内部根据客户角色已有的需求预定了几种功能... 阅读全文
posted @ 2014-10-30 22:49 lnlvinso 阅读(191) 评论(0) 推荐(0) 编辑
享元模式
摘要:享元模式(Flyweight Pattern),Flyweight在拳击比赛中是最轻量级别--“蝇量级"。享元模式以共享的方式支持大量的细粒度对象。 享元模式在编辑系统中被大量使用,例如字母a会在许多的地方出现,尽管所出现的位置和字模风格不尽相同,但是都可以共享一个字母a的对象。 Java中... 阅读全文
posted @ 2014-09-02 22:54 lnlvinso 阅读(201) 评论(0) 推荐(0) 编辑
代理(Proxy)模式
摘要:代理模式的类图如下所示: 客户端想调用的是RealSubject,由于某种考虑或原因,只能直接访问到ProxySubject,再由ProxySubject去调用RealSubject,这就完成了一次代理的活动。 代理模式的时序图如下: 从上面可以看出,ProxySubject不仅... 阅读全文
posted @ 2014-08-31 17:58 lnlvinso 阅读(375) 评论(0) 推荐(0) 编辑
装饰模式(Decorator)
摘要:装饰模式(Decorator)最常见的就是JDK中的关于I/O流的处理。 DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream("test.txt"))); 装饰模式的类... 阅读全文
posted @ 2014-08-11 23:21 lnlvinso 阅读(250) 评论(0) 推荐(0) 编辑
合成模式
摘要:AWT中就有合成模式的例子,如下图所示: 可以看出Button和Checkbox为叶子节点,Container为树枝节点,而且Container可以包含其他的Component对象,如Button等。 Container中有操作聚集的方法,而Component则没有这样的方法,也就是说AW... 阅读全文
posted @ 2014-07-13 18:08 lnlvinso 阅读(359) 评论(0) 推荐(0) 编辑
缺省适配模式
摘要:如果一个类只希望实现接口中的部分方法,这时就可以考虑使用缺省适配模式。新建一个抽象类实现接口,空实现接口中所有的方法,新的类继承该抽象类,覆盖希望实现的方法即可。 以AWT中的常用的监听器为例,希望给Frame加上一个WindowListener,frame.addWindowListener... 阅读全文
posted @ 2014-07-12 20:37 lnlvinso 阅读(556) 评论(0) 推荐(0) 编辑
适配器模式
摘要:适配器模式(Adapter Pattern)就是对一个类做适配,使之符合客户端的需求,能够正常的工作。 就像是变压器(Adapter),美国的生活电压是110V,中国的是220V,美国的电器要在中国使用就需要加上一个变压器(Adapter)。 适配器模式也被称为包装模式(Wrapper Pat... 阅读全文
posted @ 2014-07-12 12:07 lnlvinso 阅读(445) 评论(0) 推荐(0) 编辑
原始模型模式
摘要:原始模型就是给出一个原始对象来指明要创建对象的类型,然后用复制这个原始对象的方法创建出更多同类型的对象。 要理解原始模型需要先理解浅层次的拷贝与深层次的拷贝之间的不同。 浅层次拷贝就是获取的新对象是一份拷贝,然而所引用的对象仅仅拷贝的是内存地址。拷贝对象和原对象共享内存地址,这就意味着修改拷... 阅读全文
posted @ 2014-07-05 18:09 lnlvinso 阅读(367) 评论(0) 推荐(0) 编辑
建造模式
摘要:建造模式将一个产品的内部表象与产品的生成过程分割开来,从而使一个建造过程可以生成具有不同内部表象的产品对象。 1> 一个对象的某些属性必须按照某些顺序赋值才有意义,对象的某些属性必须赋值才能使用; 2> 对象由多个零件构成,而零件的构造过程又较为复杂,这时建造模式就很适用。 上面的类图中还需... 阅读全文
posted @ 2014-06-24 22:57 lnlvinso 阅读(250) 评论(0) 推荐(0) 编辑
多例模式
摘要:多例模式可以拥有多个实例,自己创建、管理自己的实例,并且向外界提供实例。 多例模式又分为有上限的多例模式和没有上限的多例模式,没有上限的多例模式创建的实例数是没有上限的,需要使用聚集管理所有的实例。 有状态的多例模式也存在和有状态的单例模式类似的问题,使用时应加以注意。 国际化(i... 阅读全文
posted @ 2014-06-21 19:01 lnlvinso 阅读(371) 评论(0) 推荐(0) 编辑
单例模式
摘要:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式有三个要点: 1.某个类只有一个实例 2.这个类自行创建该实例 3.这个类自行向整个系统提供这个实例 多台电脑公用的打印机就是现实世界中单例模式的例子。 饿汉式单例模式public class... 阅读全文
posted @ 2014-06-18 21:51 lnlvinso 阅读(151) 评论(0) 推荐(0) 编辑
工厂模式
摘要:工厂模式(Factory Pattern)用于将大量有着共同接口的类实例化,工厂模式可以动态地决定将哪一个类实例化。 工厂模式有以下集中分类: 简单工厂模式:又称为静态工厂方法模式。 工厂方法模式:又称为多态性工厂模式。 抽象工厂模式:又称为工具箱模式。 简单工厂模式的结构如下所示: 单例模式... 阅读全文
posted @ 2014-06-17 13:48 lnlvinso 阅读(299) 评论(0) 推荐(0) 编辑
里氏代换原则等
摘要:《Java与模式》读书笔记。 里氏代换原则 里氏代换原则(LSP)简言之就是基类的属性方法一定是适应于子类的,反之则不然。 在编译期,Java编译器就会检查程序是否是符合里氏代换原则,不符合就不能通过。违反里氏代换原则的一个例子就是子类试图将基类中的public方法覆盖为private方... 阅读全文
posted @ 2014-06-14 12:06 lnlvinso 阅读(1183) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示