————设计模式
量变决定质变
牢记理想,毋忘奋斗!
展开
-
开放封闭原则
开放封闭原则 开放封闭原则:就是软件实体(类、模块、函数等等),应该可以扩展,但是不可修改。 这个原则有两个特征,一个是说对于扩展是开放的,另一个是说对于更改时封闭的。 软实体包括: 1、项目或软件产品中按照一定的逻辑规则划分的模块。 2、抽象和类。 3、方法原创 2016-02-01 17:15:25 · 699 阅读 · 0 评论 -
简单工厂模式
简单工厂模式 简单工厂模式又称静态工厂方法模式。重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。 简单工厂模式的组成: 1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。 2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。原创 2015-12-06 21:52:28 · 908 阅读 · 0 评论 -
策略模式
策略模式 策略模式:它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。 面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。 商场促销,使用简单工厂模式实现://简单工厂模式的实现://现金收费抽象类a原创 2015-12-13 21:43:47 · 833 阅读 · 0 评论 -
装饰模式
装饰模式 装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。 以小菜的穿衣打扮为例,第一版:#region//小菜第一版//Person类class Person{ private string name; public Person(string name) {原创 2015-12-27 17:05:43 · 828 阅读 · 0 评论 -
大话设计模式
大话设计模式 何为设计模式?在面向对象的设计过程中,我们经常会遇到很多重复出现的问题,总结解决这些问题的成功经验,和最佳实践便形成了设计模式。 核心思想:将可重用的解决方案总结出来,并分门别类,从而指导设计,较少代码重复和优化体系结构。 设计模式的分类: 创建型:帮助我们更好地组织创建对象的代码。增强弹原创 2016-01-02 10:06:57 · 888 阅读 · 0 评论 -
工厂三姐妹
工厂三兄弟 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 工厂模式可以分为三种: 简单工厂模式:Simple Factory 工厂方法模式:Factory Method 抽象工厂模式:Abstract Factory一、原创 2016-01-02 10:13:48 · 762 阅读 · 0 评论 -
建造者模式
建造者模式 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 它的意思是:将构造复杂对象的过程和,组成对象的部件解耦。 建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象,如果我们使用建造者模式,那么用户就只需指定需要建造的原创 2016-01-02 14:46:38 · 687 阅读 · 0 评论 -
原型模式
原型模式 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节。 使用克隆方式来创建对象,同样用来创建对象的工厂模式的区别:工厂模式对新产品的适应能力比较弱,创建新的产品时,就必须修改或者增加工厂角色,而且,为了创建原创 2016-01-02 20:52:48 · 628 阅读 · 0 评论 -
桥接模式
桥接模式 桥接模式:将抽象部分与它的实现部分分离,使他们都可以独立的变化。 桥接模式在某种意义上,可以理解为前端与后端的关系,可以把桥梁模式当作帮助你编码前端和后端独立变化的框架,也就是相当于一个桥梁的作用。 在实际应用中,不仅实现部分和抽象部分所提供的接口可以完全不一样,而且实现部分内部、抽象部分内部的接口也完全可以不一样原创 2016-01-04 10:46:25 · 1059 阅读 · 0 评论 -
组合模式
组合模式 组合模式:将对象组合成树形结构以表示部分——整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式,又称为合成模式,或者树模式等,从名称就可以看出,组合模式和树形结构以及递归有关系。 递归定义刻画了树的固有特性,一棵非空树是由若干棵子树构成的,而子树有可由若干棵更小的子树构成,这里的子树可原创 2016-01-04 10:53:15 · 666 阅读 · 0 评论 -
单一职责原则
单一职责原则 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。 我们在编程的时候,很自然的就会给一个类加各种各样的功能,比如我们写一个窗体应用程序,一般都会生成一个From1这样的类,于是我们就把各种各样的代码,都写到这样的类当中,这就意味着,无论是任何需求的变化,都需要修改这个窗体类,这其实是很糟糕的,维护麻烦,不可能复用,缺乏灵活性原创 2016-02-01 17:12:35 · 670 阅读 · 0 评论 -
设计模式六大原则
设计模式六大原则 设计模式遵循的六大设计原则,其中的每一个原则都很重要,下面简写23种设计模式所遵循的设计原则。 单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。 开放封闭原则:软件实体(类、模块、函数)等等,应该可以扩展,但是不可以修改。 依赖倒转原则:高原创 2016-02-01 17:10:33 · 1109 阅读 · 0 评论 -
依赖倒转原则
依赖倒转原则 依赖倒转原则: 1、高层模块不应该依赖低层模块,两个都应该依赖抽象。 2、抽象不应该依赖细节,细节应该依赖抽象。 就是要针对接口编程,不要对实现编程,如果不管是高层模块还是低层模块,它们都依赖于抽象,具体一点就是接口或抽象类,只要接口是稳定的,那么任何一个的更改都不用担心其他的收到影响,这原创 2016-02-01 17:17:34 · 663 阅读 · 0 评论 -
里氏代换原则
里氏代换原则 里氏代换原则:子类型必须能够替换掉它们的父类型。 就是说一个软件实体,如果使用的是一个父类的话,那么一定适用于其子类,而且,它觉察不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。 只有当子类可以替换掉父类,软件单位的功能不收到影响时,父类才能真正被复用,而子类也能原创 2016-02-01 17:19:48 · 683 阅读 · 0 评论 -
迪米特法则
迪米特法则 迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 迪米特法则,也称为最少知识原则: 即一个对象应该对其他对象有最少的了解,就是一个类,应该对自己需要耦合或调用的类知道的最少,被耦合或调用的类内部是如原创 2016-02-01 17:22:44 · 833 阅读 · 0 评论 -
合成/聚合复用原则
合成/聚合复用原则 合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。 对象使用继承的缺点和限制: 对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现,子类的实现与它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化,当你需要复用子类时,如果继承下来的实现原创 2016-02-01 17:24:48 · 902 阅读 · 0 评论 -
接口隔离原则
接口隔离原则 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。 一句话总结:就好比鱼和人两个类,鱼是游泳和腮呼吸两个动作,人是走路和吃饭两个动作,这些原创 2016-02-01 17:27:53 · 728 阅读 · 0 评论 -
外观模式
外观模式 外观模式:为子系统中的一组接口,提供一个一致的界面,此模式定义一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式,又称为门面模式,定义中提到的子系统是指在设计中为了降低复杂性根据一定的规则(比如业务、功能),对系统进行的划分。 子系统中封装有一些类。客户程序在使用子系统的时候,可能会像下图一样零乱。 ...原创 2016-01-04 16:56:53 · 832 阅读 · 0 评论