![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java设计模式
文章平均质量分 75
zzumsh
这个作者很懒,什么都没留下…
展开
-
迭代器模式
【迭代器模式】 迭代器可以顺序访问一个聚集中的元素而不必显露聚集的内部对象。多个对象聚在一起形成的总体称为聚集,聚集对象是能够包容一组对象的容器对象。迭代器模式将迭代逻辑封装到一个独立的对象中,从而与聚集本身隔开。迭代算法独立于聚集对象,修改迭代算法不会对聚集对象产生任何影响,实现程序的松耦合。 1.Aggregate接口所声明的方法只有iterator方法一个,这是为了建立一个对对应...原创 2008-12-18 14:48:10 · 47 阅读 · 0 评论 -
策略模式
『策略模式』定义了算法族,分别封装起来,让它们之间可以互相替换, 此模式让算法的变化独立于使用算法的客户。例子来源于Head First Design Pattern。 Duck 是一个抽象类,Duck下面有一些子类,所有的Duck都会游泳,swim方法定义在Duck类中,所有的子类都会继承这个方法,因此在调用swim方法时所有的子类都会显示同样的特性。display()方法也定义在Duck...原创 2008-12-22 17:17:12 · 59 阅读 · 0 评论 -
观察者模式
【观察者模式】定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 观察者模式提供了一种对象设计,让主题和观察者之间松耦合。 关于观察者的一切,主题只知道观察者实现了某个接口。主题不需要知道观察者的具体类是谁,做了些什么或其他任何细节。任何时候我们都可以增加新的观察者。因为主题唯一依赖的东西是一个实现Observer接口的对象列表,所以我们可以随时...原创 2008-12-29 09:57:13 · 77 阅读 · 0 评论 -
工厂模式
【工厂模式】 定义了创建对象的接口,由子类决定实例化具体的对象。工厂模式让一个类把实例化的工作延迟到子类进行。 下面是一个具体的例子,用PizzaStore来展示了工厂模式的使用。从类图中我们可以看出,PizzaStore扮演着Creator的角色,Pizza扮演着Product的角色,这两个类都是抽象类。具体的Product定义在Pizza的子类中,由PizzaStore的子类决定如何创建...原创 2008-12-30 13:42:56 · 53 阅读 · 0 评论 -
单例模式
【单例模式】确保一个类只能有一个实例,并且提供一个全局访问点。 通常单例模式有如下的形式: public class Singleton { private static Singleton instance; private Singleton(){ } public static Singleton getInstance(){ if(instance == null){ ...原创 2009-01-27 18:38:59 · 64 阅读 · 0 评论 -
命令模式
【命令模式】把指定的动作封装在一个对象中,并为该对象提供一个已知的公共接口。这样一来,即使客户对即将执行的实际动作一无所知,也可以发出请求,而且客户程序不会受到动作改变的影响。 ...原创 2009-01-31 18:24:16 · 48 阅读 · 0 评论