设计模式
文章平均质量分 85
常用的设计模式简例
x_k
软弱即罪恶
展开
-
设计模式学习笔记——简单工厂模式
简单工厂模式学习笔记原创 2016-02-24 23:38:11 · 530 阅读 · 0 评论 -
设计模式学习笔记——策略模式
策略模式学习笔记,简单工厂模式和策略模式区别原创 2016-02-26 00:30:50 · 414 阅读 · 0 评论 -
设计模式学习笔记——设计模式的六大原则
设计模式的六大原则单一职责原则开闭原则里氏替换原则依赖倒转原则迪米特原则接口隔离原则原创 2016-02-29 22:48:40 · 401 阅读 · 0 评论 -
设计模式学习笔记——装饰模式
装饰模式学习笔记,结构图,Demo原创 2016-03-08 11:29:42 · 510 阅读 · 0 评论 -
设计模式学习笔记——代理模式
代理模式学习笔记,结构图,demo原创 2016-03-08 22:23:45 · 665 阅读 · 2 评论 -
设计模式学习笔记——工厂方法模式
工厂方法模式学习,结构图,demo,工厂方法模式VS简单工厂模式原创 2016-03-09 11:43:37 · 487 阅读 · 0 评论 -
设计模式学习笔记——原型模式
原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原创 2016-03-13 19:39:38 · 402 阅读 · 0 评论 -
设计模式学习笔记——模板方法模式
抽象方法由抽象类声明不加以实现。定义好规范,然后由子类去实现。模板方法由抽象类声明并加以实现。一般来说,模板方法调用抽象方法来完成主要的逻辑功能,并且,模板方法大多会定义为final类型,指明主要的逻辑功能在子类中不能被重写。钩子方法由抽象类声明并加以实现。但子类可以扩张,子类可以通过扩展钩子方法来影响模板方法的逻辑。(违反里氏替换原则)原创 2016-03-14 22:07:06 · 471 阅读 · 0 评论 -
设计模式学习笔记——外观模式
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。原创 2016-03-15 16:03:37 · 514 阅读 · 1 评论 -
设计模式学习笔记——建造者模式
建造者模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。产品类Product:一个复杂的对象,换句话说该对象在创建的过程中比较复杂。可以是一个具体类,也可以是一个抽象类与它不同的实现组成。抽象建造者Builder:将建造Product的具体过程交给它的子类实现。容易扩展,至少包括两个方法,一个建造Product,一个返回建造的Product。具体建造者ConcreteBuilder:继承抽象建造者类,实现父类未实现的方法:组建产品,返回组建好的产品。指挥者Directo原创 2016-03-16 21:36:02 · 498 阅读 · 0 评论 -
设计模式学习笔记——观察者模式
观察者与被观察者之间属于轻度的关联关系,并且是抽象耦合的,对于两者比较容易扩展。观察者模式是一种常用的触发机制,形成一条触发链,依次对各个观察者的方法进行处理。但是由于链式触发,当观察者比较多的时候,性能问题很难解决。并且链式结构容易出现循环引用错误,造成系统假死。原创 2016-03-17 11:31:56 · 465 阅读 · 0 评论 -
设计模式学习笔记——抽象工厂模式
抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。使用工厂模式,只需要关心降低耦合的的目的是否达到原创 2016-03-21 00:30:18 · 354 阅读 · 0 评论 -
设计模式学习笔记——状态模式
当一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为,那么就可以使用状态模式了。状态模式通过把各种状态转移逻辑分布到State的子类之间,原创 2016-03-21 23:44:02 · 462 阅读 · 0 评论 -
设计模式学习笔记——适配器模式
适配器一词最早来自于电力行业中,如:每个国家的标准电压不同,有的是220V,有的是110V,这个时候就需要适配器从中转换一下。即两个类所做的事情相同或者相似,但具有不同的接口。原创 2016-03-22 23:31:03 · 481 阅读 · 0 评论 -
设计模式学习笔记——备忘录模式
当角色的状态改变的时候,有可能这个状态无效,那么就可以使用备忘录暂时存储起来,方便状态复原。原创 2016-03-23 23:40:37 · 543 阅读 · 0 评论 -
设计模式学习笔记——组合模式
组合模式,将对象组合合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。当需求中体现部分与整体层次结构是,并且需要忽略组合对象和单个对象的不同,统一地使用组合结构中的所有对象时,可以考虑使用组合模式。组合模式定义了基本对象和组合对象层次结构。基本对象可以被组合成更复杂的组合对象,而这个组合对象可以又被组合,递归传递。使用时,任何使用基本对象的地方都可以使用组合对象。原创 2016-03-26 21:32:36 · 840 阅读 · 0 评论 -
设计模式学习笔记——迭代器模式
迭代器模式,提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。简化遍历方式,对于Hash表来说,遍历比较麻烦,使用迭代器遍历简单许多。提供多种遍历方式,对于有序列表,可以提供正序遍历,倒序遍历等。封装性好,用户只需要迭代器就可以遍历,对遍历算法不需要关心。原创 2016-03-27 14:39:27 · 459 阅读 · 0 评论 -
设计模式学习笔记——单例模式
1.在内存中只有一个对象,节省内存空间。2.避免频繁的创建销毁对象,可以提高性能。3.避免对共享资源的多重占用。4.可以全局访问。原创 2016-03-27 16:28:08 · 451 阅读 · 0 评论 -
设计模式学习笔记——桥接模式
桥接模式,将抽象部分与它的实现部分分离,使他们都可以独立地变化。桥接模式的“将抽象部分和它的实现部分分离”,指的是实现系统可能有多角度分类,每种分类都可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。原创 2016-03-29 23:55:01 · 467 阅读 · 0 评论 -
设计模式学习笔记——命令模式
命令模式,将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。核心:把请求一个操作的对象与知道怎么执行一个操作的对象分割开。原创 2016-03-31 00:31:33 · 410 阅读 · 0 评论 -
设计模式学习笔记——责任链模式
优点:责任链模式与if ...else相比,耦合性相对较低一些,条件判断都分散到了各个处理类中。缺点:判定条件都要被执行一遍,当责任链较长时,性能问题严重。原创 2016-04-04 20:36:09 · 387 阅读 · 0 评论 -
设计模式学习笔记——中介者模式
1.可以避免同事类之间的耦合过度,使同事类之间可以相互独立使用。(迪米特原则)2.一对多关联转变为一对一关联,对象关系容易理解和维护。3.使用中介者模式可以将对象的行为和协作进行抽象,灵活处理对象之间的作用。原创 2016-04-30 17:28:06 · 396 阅读 · 0 评论 -
设计模式学习笔记——解释器模式
优点,扩展性好,修改语法规则只需要修改相应的非终结符就可以了,扩展语法,即增加非终结类。缺点,每个语法都需要产生一个非终结符表达式,语法规则复杂,维护麻烦。使用了大量循环和递归,效率十分地低。原创 2016-04-30 22:09:09 · 363 阅读 · 0 评论 -
设计模式学习笔记——访问者模式
符合单一职责原则:适用访问者模式时,元素类中需要封装在访问者中的操作必定是与元素类本身关系不大且是易变的操作,使访问者模式一方面符合单一职责原则,另一方面,被封装的操作通常是易变的,所以发生变化时,可以在不改变元素类本身的前提下,实现变化部分扩展。扩展性好:元素可以通过接受不同的访问者来实现对不同操作的扩展。原创 2016-04-30 23:06:41 · 354 阅读 · 0 评论