设计模式
文章平均质量分 71
basket24
这个作者很懒,什么都没留下…
展开
-
learning之工厂方法模式
本篇是工厂类设计模式简单学习示例。一、工厂方法:1、普通(简单)工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。public interface Creator { public void creat();}//实现类:public class Human implements Creator{ @Override publi原创 2017-07-11 15:20:24 · 300 阅读 · 0 评论 -
learning之策略模式
策略模式:定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。 说明:1、在相同的行为抽象下有不同的具体实现策略2、将策略抽象出来,对客户端提供统一接口,不同具体实现类实现具体策略。这样客户端可以通过切换不同实现类来动态切换策略。图片来自网络://策略的抽象public interface Sor原创 2017-07-19 13:22:20 · 263 阅读 · 0 评论 -
learning之享元模式
享元模式:享元模式以共享的方式高效地支持大量细粒度对象的重用,就是对象复用,以节省内存和创建消耗。Flyweight:享元对象抽象基类或者接口;ConcreteFlyweight:具体的共享的享元对象;UnsharedConcreteFlyweight:非共享部分;FlyweightFactory:工厂方法管理享元对象池和创建享元对象。图片来自网络:原创 2017-07-18 13:26:03 · 257 阅读 · 0 评论 -
learning之观察者模式
观察者模式: 当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化,是一对多的依赖。类似发布订阅,订阅了主题的对象,在主题发生变化时,会收到通知,并做相应更新。图片来自网络://定义观察者接口,当主题有变更时,会通知进行更新public interface Observer { public void update();}//具体的观察者1publi原创 2017-07-21 13:20:43 · 273 阅读 · 0 评论 -
learning之组合模式
组合模式:将对象组合成树形结构以表示部分-整体的层次结构,使得单个对象和组合对象的使用具有一致性。说明:如果需要体现部分与整体层次结构时,并忽略组合对象与单个对象的不同,对外有统一方式使用组合结构中的所有对象时,就可以考虑该模式。图片来自网络://Component接口public interface IView { public void sho原创 2017-07-17 13:52:33 · 295 阅读 · 0 评论 -
learning之建造者模式
建造者模式:是将一个复杂的对象的构建与它的内部表示分离,使得同样的构建过程可以创建不同的表示。建造模式是对象的创建模式。如白宫和酒店的建造,基本构建流程一致,如包括打地基、房间主体、装修三个步骤,那么可以将同样的构建过程抽象出来,根据具体建造对象不同表示来完成建造对象。建造者模式有如下几个角色:抽象建造者(Builder)角色:抽象出建造流程的规范。 具体建造者(Conc原创 2017-07-12 14:19:18 · 342 阅读 · 0 评论 -
learning之原型模式
原型模式(Prototype):用于对象的复制。Prototype类具备条件:1、java语言中实现Cloneable接口。这样虚拟机可以安全地在实现了此接口的类上使用clone方法。2、重写Object类中的clone方法。说明:1、Object类的clone方法是一个本地方法,它直接操作内存中的二进制流,性能优势比直接new一个对象明显。非常明显适用于重复地创建相似原创 2017-07-13 13:50:58 · 695 阅读 · 0 评论 -
learning之外观模式
外观模式就是提供一个将类与类之间的关系放在一个Facade中,降低了类与类之间的耦合度。门面(Facade)角色 :对外提供的统一的门面接口。该角色内部管理子系统的关系和逻辑处理分发。子系统(SubSystem)角色 :门面可以管理的内部各个模块。//门面类public class SystemManager{ private Module module=new M原创 2017-07-16 15:31:12 · 251 阅读 · 0 评论 -
learning之代理模式
代理模式的定义:给某一个对象提供一个代理,并由代理对象控制对原对象的引用。角色:1、ISubject:抽象主题角色,是一个接口。该接口是对象和它的代理共用的接口。2、RealSubject:真实主题角色,是实现抽象主题接口的类。3、Proxy:代理角色,内部含有对真实对象RealSubject的引用,从而可以操作真实对象。//共同抽象接口public interf原创 2017-07-16 10:09:20 · 323 阅读 · 0 评论 -
learning之装饰者模式
装饰者模式是给一个对象添加一些额外的职责,就象Decorator一下该功能。说明:1、装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为。2、要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。//被装饰者脖子统一行为接口public interface Neck{ public void necklace();//项链 publi原创 2017-07-15 23:47:55 · 256 阅读 · 0 评论 -
learning之适配器模式
Adapter模式主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。角色:1、目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。2、需要适配的类(Adaptee):需要适配的类或适配者类。3、适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。 说明:1、通过适配器,客户端原创 2017-07-14 14:38:01 · 272 阅读 · 0 评论 -
learning之桥接模式
桥接模式:将抽象部分与实现部分分离,使它们都可以独立的变化。说明:1、桥接模式作用就是为被分离了的抽象部分和实现部分搭桥,两部分都可以独立地进行变化。2、为了独立变化的目的,抽象部分会拥有实现部分的接口对象(即为桥接),从而通过此接口来调用实现部分的功能。图片来自网络:下面例子,WindowManager提供抽象部分对外接口,对窗口Window进行管理,原创 2017-07-16 21:43:20 · 471 阅读 · 0 评论 -
learning之状态模式
状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。状态模式的使用场景:1、一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为;2、代码中包含大量与状态有关的条件语句,例如,一个操作中含有庞大的多分枝语句(if-else 或者 switch-case),且这些分支依赖于该对象的状态,改为用多态来实现的一个具体实例。组成:环原创 2017-08-22 21:45:11 · 714 阅读 · 0 评论