设计模式
zzqrj
这个作者很懒,什么都没留下…
展开
-
设计模式的原则
设计模式(Design Pattern)的原则 1、"开-闭"原则——模块应对扩展开放,而对修改关闭。(最最核心的原则) 2、里氏代换原则——如果调用的是父类的话,那么换成子类也完全可以运行。里氏代换原则是继承复用的一个基础。 子类 overload方法的访问权限不能小于父类对应方法的访问权限 3、合成复用原则——要少用继承,多用合成关系来实现。(合成包括:...原创 2010-01-22 22:25:38 · 172 阅读 · 0 评论 -
行为型设计模式--观察者模式(Observer)
观察者模式(Observer) 观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。 Observer模式的角色: 抽象主题(Subject)角色:主题角色把所有的观...原创 2011-03-07 08:22:45 · 109 阅读 · 0 评论 -
结构型设计模式--适配器模式
适配器模式(参考自http://www.iteye.com/topic/262370 ) 适配器模式的的核心思想是 :为原接口类实现一个默认的抽象类,在该抽象类中编写每一个方法的默认实现,当我们需要编写一个具体类时,只需要继承该抽象类,而不需要实现原有的接口,并且不需要实现原有接口的所有方法接口,只实现需要的函数即可。 适配就是由“原”到“目标”的适...原创 2011-03-07 08:17:15 · 79 阅读 · 0 评论 -
结构型设计模式--装饰模式
装饰模式原创 2011-03-07 08:16:40 · 69 阅读 · 0 评论 -
结构型设计模式--享元模式
享元模式原创 2011-03-07 08:15:58 · 77 阅读 · 0 评论 -
结构型设计模式--代理模式(Proxy)
代理模式(Proxy) 为其他对象提供一种代理以控制对这个对象的访问。它的特征是代理类与委托类有同样的接口 角色: 抽象角色:声明真实对象和代理对象的共同接口; 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实...原创 2011-03-06 22:52:49 · 101 阅读 · 0 评论 -
结构型设计模式--外观模式(Facade)
外观模式(Facade) 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。 // 汽车引擎 public class Engine { publ...原创 2011-03-06 16:21:20 · 92 阅读 · 0 评论 -
结构型设计模式--桥接模式(Bridge)
桥接模式(Bridge) 将抽象部分与实现部分分离,使它们都可以独立的变化。 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。 效果及实现要点: (1) Bridge模式使用“对象间的组合关系”...原创 2011-03-05 09:33:59 · 111 阅读 · 0 评论 -
创建型设计模式--原型模式
原型模式原创 2011-03-05 09:25:39 · 73 阅读 · 0 评论 -
创建型设计模式--建造者模式
建造者模式原创 2011-03-05 09:24:39 · 65 阅读 · 0 评论 -
创建型设计模式--单例模式
单例模式(Singleton) 在一个系统要求一个类只有—个实例时才应当使用单例模式 单例类(singleton)可以保证系统中只可能由该类的一个对象,而且这个对象由类自行初始化 懒汉式单例类 (1) 这个类被加载时,静态变量singleton会被初始化,此时类的私有构造器会被调用,单例类的惟一实例就被创建出来了。 (2) Ja...原创 2011-03-05 09:16:22 · 69 阅读 · 0 评论 -
创建型设计模式--抽象工厂
抽象工厂模式(AbstractFactory) 每一个模式都是针对一定问题的解决方案,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式针对的是多个产品等级结果。 产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。一般是位于不同的等级结构中的相同位置上。每一个产品等级结构中有多少个具体的产品,就有多少个产品族,也就会在工厂等级结构中发现多少个具体工厂。 ...原创 2011-03-05 09:01:23 · 89 阅读 · 0 评论 -
创建型设计模式--工厂方法
工厂方法(Factory Method) 定义一个用于创建对象的接口,让子类决定实例哪一个类。 工厂方法使一个类的实例化延迟到其子类。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做。这个核心工厂则变为抽象工厂角色,仅负责给出工厂子类必须实现的接口,而不接触哪一产品创建的细节。 工厂方法模式可以用来允许系统不修改具体工厂角色的情况下引进新...原创 2011-03-05 08:57:58 · 83 阅读 · 0 评论 -
创建型设计模式--简单工厂
简单工厂(静态工厂方法Static Factory Method模式) 简单工厂模式是由一个工厂对象来决定创造哪一种产品类的实例 简单工厂模式最大的优点在于工厂类中包含了必要的逻辑判断。 // 产品接口---水果接口 public interface Fruit { public void plant(); ...原创 2011-03-05 08:52:29 · 77 阅读 · 0 评论 -
行为型设计模式--策略模式(Strategy)
策略模式(Strategy) 定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。该模式使得算法可独立于它们的客户变化。 抽象策略(Strategy)角色:策略类,通常由一个接口或者抽象类实现 具体策略(ConcreteStrategyA)角色:包装了相关的算法和行为 环境(Context)角色:持有一个策略类的引用,最终给客户端调用的。 ...原创 2011-03-07 08:28:08 · 142 阅读 · 0 评论