
设计模式
文章平均质量分 60
人生无绝境
追求极致
展开
-
Singleton Mode(单例模式)
(一)单例模式定义指定类只有一个实例,该类只能自行创建这个实例的一种模式(例如:人类之中的女人,女人可以生孩子)(二)单例模式特点单例类只有一个实例 单例对象必须由单例类自己创建 单例类对外提供一个访问单例的全局访问点。(三)单例模式结构单例类:一个实例只能自行创建这个类的实例类 访问类:使用单例类(四)单例模式实现单例模式实现共有两种,一种是懒汉模式,另一种是饿汉模...原创 2020-01-08 13:45:41 · 421 阅读 · 0 评论 -
Principle Of Composite Reuse(合成复用原则)
(一)合成服用原则定义软件复用时,尽量先使用组合或者聚合关联关系来实现,次之考虑使用继承关系实现。(二)继承复用破坏封装,继承就会将父类的实现细节暴露给子类(称为白箱复用) 子类与父类的耦合性高,父类的实现和改变都能改变子类的变化,不利于类的扩展与维护。 限制了复用的灵活性(三)合成复用(合成复用的好处,新对象可以调用已有对象的功能)维持类的封装性(称为黑箱复用) 新旧类之...原创 2020-01-08 11:22:44 · 296 阅读 · 0 评论 -
Interface Isolation Principle(接口隔离原则)
(一)接口隔离原则定义接口隔离原则和单一职责都是为了提高类内进行,降低他们之间的耦合性,体现了封装的思想。(1)单一职责原则注重的是职责,而接口隔离原则注重的是对接口依赖的隔离。(2)单一职责原则主要约束类,它针对的是程序中的实现和细节,接口隔离原则主要约束接口,主要针对抽象和程序整体框架的构建。(二)接口隔离原则优点将复杂庞大的接口分解成众多个小接口,从而降低了类对接口的依赖...原创 2020-01-08 03:42:08 · 294 阅读 · 0 评论 -
Principle Of Dependence Inversion(依赖倒置原则)
(一)依赖倒置原则的定义高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节不应该依赖抽象。精髓思想:要面向接口编程,不要面向实现编程(依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合)例如:DBHelp,里面含有连接数据库的方法,包括增删改查等等一系列的方法,而DBHelp类就是一个抽象,它就是一个接口编程,而连接DBHelp类的方法,...原创 2020-01-07 01:59:40 · 230 阅读 · 0 评论 -
Dimiter Principle(迪米特原则)
(一)迪米特原则定义:如果两个软件实体无需直接通信,那么就不应该直接相互调用,可以通过第三方转发该调用(例如:小明在学校犯了错误,应该自己打电话回家和爸爸说自己犯了错误,要来学校一趟,不过老师把小明完成了这个通话,这就是一个简单的迪米特原则)。(二)迪米特法则优点降低了类之间耦合度,提高了模块的相对独立性。 亲和度降低,提高了类的可复用率和系统的扩展性。(三)迪米特法则的实现在...原创 2020-01-06 03:36:11 · 462 阅读 · 0 评论 -
Richter's Principle Of Substitution(里氏替换原则)
(一)里氏替换原则定义子类替换父类(例如:花木兰替父从军)(二)里氏替换原则的作用里氏替换原则是实现开闭原则的重要方式之一 克服了继承中重写父类造成的可复用性变差 动作正确性的保证,即类的扩展不会给已有的系统引入新的错误,降低了代码的概率(三)里氏替换原则的实现里氏替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能,说明子类继承父类功能时可以添加新功能,但是不能重写父...原创 2020-01-05 10:08:29 · 265 阅读 · 0 评论 -
Single Yuanz(单一原则)
(一)单一模式定义一个类,只负责一件事。(例如:老师负责教学,学生负责学习)(二)单一原则优劣缺点一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力(例如:张三精通C,C#,Java,而叫他去负责C辅导工作,就埋没了他原有的C#,Java能力 当客户端需要该对象的某一个职责时,不得不将其他不需要的职责全都包含进来,从而造成冗余代码或代码的浪费(张三会精通Java,C.C#,...原创 2020-01-05 08:48:40 · 311 阅读 · 1 评论 -
Open and clos principle(开闭原则)
(一)开闭原则的作用开闭原则是面向对象程序设计的终极目标,它是软件实体用有一定的适应性和灵活性的同时还具备稳定性和延续性。(1)对软件的影响软件测试只需对扩展的代码进行测试方可(2)可以提高代码的可复用性粒度越小,被复用的可能性就越大,在面向对象程序设计中,根据原子核抽象编程可以提高代码的可复用性(3)提高软件的可维护性遵守开闭原则的软件,其稳定性高和延续性强,从而易于...原创 2020-01-03 12:59:57 · 227 阅读 · 0 评论 -
设计模式之工厂方法
概念(1)提供一系列得相互依赖对象得创建工作(2)封装对象得常规访问方法得方式(3)提供统一调用数据访问方法得方式(4)避免调用数据访问和具体得对象创建工作耦合理解:工厂有很多种,每当一个人只说出工厂的时候,它是一个抽象的,而说出它是一个生产汽车的工厂时,它是一具体的工厂,例如你又说出跑马车,没有说出具体的系列,跑马车这时只是一个抽象类而已,如果你说的是K78的跑马车的话,那就...原创 2018-11-17 16:54:30 · 202 阅读 · 0 评论 -
设计模式之观察者模式
1)概念观察者:指观察者对象,也是消息的订阅者被观察者:指为观察的目标对象,也就是消息的发布者。(2)观察者模式又称为发布—订阅(Publish/Subscribe)模式,观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听一个主题对象,而每当那一个主题对象发生变化的时候,它就会通知所有的观察对象,使它们能够自动更新自己。(3)每一个模式描述了我们周围重复不断变化的问题,以及...原创 2018-11-16 11:44:13 · 210 阅读 · 0 评论 -
设计模式基础之开闭原则
设计模式设计模式23式(一)了解设计模式给程序设计带来的好处(二)创建型模式:熟练掌握(简单工厂,工厂方法,抽象,单利模式,建造者模式,原型模式)(三)结构性模式:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式,(四)行为模式:策略模式,模板方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者模式中介者模式,解释器模式。...原创 2018-11-12 11:36:17 · 343 阅读 · 0 评论 -
设计模式之代理模式
(一)代理模式的意义(1)控制被访问对象的访问(2)简化被访问对象的访问(3)实现AOP(AOP:面向切面编程)(4)添加非业务相关的代码,比如添加日志等等(二)代理模式组成(1)主题类:定义主题相关功能的接口(2)具体主题类:实现主题类中定义的功能(3)代理类:控制对具体主题类的访问代码案例using System;using System.Colle...原创 2018-11-15 14:33:09 · 172 阅读 · 0 评论