设计模式
HeJD
这个作者很懒,什么都没留下…
展开
-
设计模式:享元模式-flyweight
运用共享技术有效地支持大量细粒度的对象 实际上就是通过一个容器存储对象,等到需要用的时候,再获取对象的引用优点: 减少对象数量,节省内存空间缺点: 维护共享对象需要额外开销,如需要专门设置一个线程来回收原创 2017-01-10 14:30:56 · 249 阅读 · 0 评论 -
设计模式:访问者模式-vistor
表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作原创 2017-01-10 16:25:26 · 303 阅读 · 0 评论 -
设计模式:观察者模式-observer
定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新 实际上是subject中有一个observer的bean序列,当subject更新时,调用该序列中所有的observer的更新原创 2017-01-11 09:30:14 · 261 阅读 · 0 评论 -
设计模式:模板方法模式-template method
定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤在抽象父类中,可以定义多种不同类型的方法原创 2017-01-11 09:35:47 · 396 阅读 · 0 评论 -
设计模式:策略模式-strategy
定义一系列的算法,把他们一个个封装起来,并且使它们可以相互替换。本模式是的算法可以独立于使用他的客户而变化原创 2017-01-11 09:44:49 · 276 阅读 · 0 评论 -
设计模式:责任链模式-chain of responsibility
职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。原创 2017-01-11 09:49:20 · 241 阅读 · 0 评论 -
设计模式:原型模式-prototype
原型模式就是克隆一个已有的对象原创 2017-01-11 09:51:28 · 259 阅读 · 0 评论 -
设计模式:工厂方法-facotry method
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。原创 2017-01-11 09:56:16 · 267 阅读 · 0 评论 -
设计模式:抽象工厂-abstract factory
提供一个创建一系列相关或者相互依赖对象的接口,而无须指定他们具体的类优点: 良好的封装性:每个产品类与高层之间的关系不需要被client知道,client只需要知道工厂类能够创建出一个需要的对象即可 产品族内的约束关系为非公开的状态原创 2017-01-11 10:23:57 · 287 阅读 · 0 评论 -
设计模式:状态模式-state
允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了他的类state是一个接口,定义了基本操作,concreteState是不同状态,其中的方法表示在当前状态下,不同操作的实现。context中,通过改变state来使得调用不同状态的方法原创 2017-01-10 16:13:57 · 299 阅读 · 0 评论 -
设计模式:中介者模式-mediator
用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互 把原本对象间的耦合,通过一个中间件解除,使得对象解除多对多的关系,变得对象与中间件间有一对一的关系,呈星型结构中介者模式的优点适当地使用中介者模式可以避免同事类之间的过度耦合,使得各同事类之间可以相对独立地使用。原创 2017-01-10 16:04:12 · 271 阅读 · 0 评论 -
设计模式:装饰模式-decorator
动态地给一个对象添加一些额外的职责。就增加功能来说,decorator模式相比生成子类更加灵活 实际上就是decorator与concreteComponent是同一层次的可以替换的,在decorator中包含一个component对象,通过该对象调用原本的服务,并在该对象附近增加新服务原创 2017-01-10 14:41:02 · 315 阅读 · 0 评论 -
设计模式:桥接模式-bridge
将抽象部分与它的实现部分分离,使他们都可以独立地变化效果及实现原创 2017-01-10 14:51:36 · 276 阅读 · 0 评论 -
设计模式:组合模式-composite
将对象组合成树形结构以表示“整体-部分”的层次结构。composite是的用户对单个对象和组合对象的使用具有一致性 组合模式关键定义了一个抽象类或者接口,既可以代表元素又可以代表部分整体,而客户端是针对该接口进行编程。因此,客户端不需要知道是元素还是部分整体,对其统一进行处理。原创 2017-01-10 14:57:12 · 198 阅读 · 0 评论 -
设计模式:外观模式-facade
为子系统中的一组接口提供一个一致的界面,facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 通过一个代理,把所有对象都收集起来,暴露某些函数给client,使得client可以使用被封装起来的对象原创 2017-01-10 15:02:24 · 236 阅读 · 0 评论 -
设计模式:代理模式-proxy
为其他对象提供一种代理以控制对这个对象的访问 实际上,代理跟realsubject是同一个父类(如此,某种意义下realsubject与proxy是一样的),proxy中包含了realsubject,proxy通过调用realsubject对象的方法来实现代理原创 2017-01-10 15:06:36 · 304 阅读 · 0 评论 -
设计模式:适配器模式-adapter
将一个类的接口转换成客户希望的另外一个接口。apapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作Java中比较常用对象适配器模式,对象适配器模式就是,继承target,重写request(),在adapter中,创建adaptee对象,把target中的request,指向adaptee中的specificRequest,即完成适配。原创 2017-01-10 15:11:53 · 231 阅读 · 0 评论 -
设计模式:迭代器模式-interator
提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部结构 主要分成2部分:aggregate-容器,内有增加删除容器内容等方法,还有一个生成迭代器的方法;iterator-迭代器,实际上就是一个指针,内有移动指针以及返回当前元素等方法原创 2017-01-10 15:45:04 · 278 阅读 · 0 评论 -
设计模式:命令模式-command
将一个请求封装为对象,从而使你可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作 invoker中包含一系列命令,客户端通过调用invoker来使得多条命令封装在一起被执行,方便回滚以及事务处理命令模式的优点 首先,命令模式的封装性很好:每个命令都被封装起来,对于客户端来说,需要什么功能就去调用相应的命令,而无需知道命令具体是怎么执行的。原创 2017-01-10 15:52:31 · 337 阅读 · 0 评论 -
设计模式:五大原则
设计模式五大原则原创 2017-01-11 10:28:11 · 506 阅读 · 0 评论