
设计模式
文章平均质量分 76
天空海的眼·
这个作者很懒,什么都没留下…
展开
-
设计模式<四>简单工厂模式与工厂方法模式
设计模式概述见: http://blog.youkuaiyun.com/chijiandi/article/details/78839305简单工厂模式的基本概念简单工厂模式是一种创建型模式,它根据外界给定的信息生成外界需要的对象。 它不属于23种GOF设计模式之一。 和我们所理解的工厂一样,简单工厂模式直接生产对象。 随手画了一个很不规范的简单的实现图,就体现个思想。 产品可以是接口也可以是抽原创 2017-12-19 14:20:36 · 959 阅读 · 0 评论 -
设计模式(十三)外观模式
设计模式概述见: http://blog.youkuaiyun.com/chijiandi/article/details/78839305外观模式的基本概念外观模式为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易使用。 意思就是当存在很多子系统的接口时可以使用一个高层的接口对他们进行整合。外边模式在没有学习设计模式之前可能也已经有过使用的经验,可以说是...原创 2018-06-13 10:20:51 · 568 阅读 · 0 评论 -
设计模式(十二)装饰者模式
设计模式概述见: http://blog.youkuaiyun.com/chijiandi/article/details/78839305装饰者模式的基本概念装饰者模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 有点像我们小时候玩过的纸盒套纸盒,拆开一层还有一层的样子,每一层的纸盒则是对应不同的功能,你想要这个功...原创 2018-04-08 10:14:41 · 569 阅读 · 0 评论 -
设计模式(十一)观察者模式
设计模式概述见: http://blog.youkuaiyun.com/chijiandi/article/details/78839305观察者模式的基本概念观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自...原创 2018-03-19 13:47:15 · 693 阅读 · 0 评论 -
设计模式(十)桥接模式
桥接模式的基本概念桥接模式是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。什么时候用桥接模式桥接模式主要用于类继承关系的解耦上,也可用于隐藏抽象的具体细节上,当类具有多个可变元素时,我们不应将其依赖于具体的实现,而是将其依赖于抽象。 又如模板方法模式般,将不变的不变,可变的封装。 比方说我...原创 2018-03-02 14:02:22 · 678 阅读 · 0 评论 -
设计模式(九)模板方法模式
模板方法模式的基本概念定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。意思是,某些固定的代码写在模板中,并封装一些子类不同实现的方法给子类去实现,而子类继承了这个模板的固定方法,并以自己的形式对其余的方法进行重写。什么时候用模板方法模式当某些代码的大部分是不变的,而又一小部分需要经常进行变动,这时候就...原创 2018-02-27 11:34:09 · 686 阅读 · 0 评论 -
设计模式(八)原型模式
原型模式的基本概念原型模式就是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 它是一种创建型模式,简单说,原型模式就是从一个对象创建出另一个对象,而不必知道他的创建细节。或者可以把原型模式叫做-克隆。被复制的对象被叫做-原型。什么时候用原型模式原型模式的使用场景如下:当类的大量调用并且初始化需要耗费大量的资源。保护原始对象在多个地方调用后的原始性。对象...原创 2018-02-02 10:49:22 · 745 阅读 · 0 评论 -
常用设计模式概述
(一)简单工厂模式和工厂模式客户端提供一个条件给工厂,工厂根据条件返回客户端需要的对象。 它根据客户端传入的参数,生成不同的对象,调用对象的方法。 简单工厂模式中可以通过反射机制来简化if…else或switch的大量繁琐引用。 它的调用如下:Calc add = CalcFactory.createCalc(&amp;amp;quot;add&amp;amp;quot;); calc.calc(2,5); Calc re...原创 2017-12-19 09:45:51 · 1193 阅读 · 0 评论 -
设计模式六大原则<二>依赖倒置原则
设计模式概述见: http://blog.youkuaiyun.com/chijiandi/article/details/78839305依赖倒置原则的基本概念高层模块不应该依赖底层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 换句话说:依赖倒置要求我们面向接口编程。 遵守依赖倒置原则,要求我们遵守这样两点: 1. 低层模块应有其抽象类或接口 2. 遵循里氏替换原创 2018-01-16 10:14:07 · 845 阅读 · 0 评论 -
设计模式<七>建造者模式
建造者模式的基本概念将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 或者说,用户只需要知道他需要什么,而不需要知道这个东西的具体是怎样创造出来的 。 他与工厂模式的区别在于,他们都封装了具体的创建过程,建造者模式是一个产品的不同生产过程,而工厂模式提供的是不同的产品。什么时候用建造者模式建造者模式在这样的情况下使用: 1.当产品类的内部结构较复杂,原创 2018-01-23 14:05:25 · 819 阅读 · 0 评论 -
设计模式六大原则<一>单一职责原则
设计模式概述见: http://blog.youkuaiyun.com/chijiandi/article/details/78839305单一职责原则的基本概念不要存在多于一个导致类变更的原因。 概念很简单,理解起来就是:一个类只负责一个功能。为什么要遵守单一职责原则一个类负责的功能越少,他被复用的概率就越低,复杂性也越低。功能简单明白,可读性和维护性强,耦合性低,更易修改。在遵守单一职责原则的情原创 2017-12-28 09:45:07 · 899 阅读 · 0 评论 -
设计模式<六>抽象工厂模式
抽象工厂模式的基本概念提供一个创建一系列相关或依赖对象的接口,而无需指定他们具体的类。 了解抽象工厂模式就需要先了解产品族以及产品等级结构的概念。 在抽象工厂模式中,一个具体工厂生产一个产品族,产品族即各种不同的产品的组合,例如正方形,圆形,椭圆形都是不同的,又有共同的抽象→形状。 例如加减乘除的算法都是不同的,又有共同的抽象→计算。 这些都是一个个的产品族,产品等级结构即一个具体产品的不同原创 2018-01-03 09:31:06 · 869 阅读 · 0 评论 -
设计模式<三>代理模式
代理模式的基本概念代理模式是为其他对象提供一种代理以控制对这个对象的访问。 换句话说就是客户端某些情况下不能或者不好直接和对象进行交互,就与它的代理交互,交互的代理可以扩展原对象的功能且不会改变原对象,这就是一种开放-封闭的设计原则。什么时候使用代理模式举两个例子, 比如张三想打李四,可是打不过他,所以找了王五把李四揍了一顿,而李四不知道是张三想打他。 又比如我想买苹果10,可是苹果10国内没原创 2017-12-19 09:38:01 · 930 阅读 · 0 评论 -
设计模式<二>单例模式
简单工厂模式客户端提供一个条件给工厂,工厂根据条件返回客户端需要的对象。 Calc add=CalcFactory.createCalc(“add”); calc.calc(2,5); Calc reduce=CalcFactory.createCalc(“add”); calc.calc(6,5); 根据客户端传入的参数,生成不同的对象,调用对象的方法。策略模式客户端提供一个对象策略给C原创 2017-12-19 08:52:17 · 851 阅读 · 0 评论 -
设计模式<五>策略模式
设计模式概述见: http://blog.youkuaiyun.com/chijiandi/article/details/78839305策略模式的基本概念它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 意思就是算法只是一种策略,而策略之间是可以相互替换的,替换之后也不会影响到使用这些算法的客户端。什么时候使用策略模式策略模式被运用在算法的互换上,原创 2018-01-02 10:16:54 · 1479 阅读 · 0 评论 -
设计模式<一>适配器模式
适配器模式的基本概念适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法再一起工作的两个类能够在一起工作。 通俗地说就是两个相似功能的接口名字不一样而客户端需要他们名字一样。什么时候使用适配器模式当开发后期,两个功能相似的接口因为都不太容易改,或当调用别人类似功能的接口时,通过适配器模式返回客户端一致的接口。 使客户端能够统一地调用同一接口。适配器模式怎么用在前面原创 2017-12-19 09:51:32 · 830 阅读 · 0 评论 -
策略模式优化大量if-else
使用策略模式优化大量的if-else语句原创 2018-12-17 10:57:10 · 11309 阅读 · 3 评论