Skip to content

751933593/Design-Pattern-Practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

设计模式实践

设计原则

6大设计原则总结

  • 单一职责原则 Single Responsiblity Principle

    定义:应该有且仅有一个原因引起该类变更

    解释:一个类或接口只有一个职责,只负责一件事

    好处:降低类的复杂度,提高可读性,增加可维护性,降低变更引起的风险

  • 里氏替换原则 Liskov Subsitution Principle

    定义一:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型

    定义二:所有引用基类的地方必须能透明地使用其子类的对象

    解释:只要父类出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道父类还是子类

    好处:增强程序的健壮性,版本升级时也可以保持非常好的兼容性。即使增加子类,原有的子类还可以继续执行

  • 依赖倒置原则 Dependence Inversion Principle

    定义:高层模块不应该依赖底层模块,两者都应该依赖抽象;抽象不应该依赖细节;细节应该依赖抽象。

    解释:面向接口编程

    好处:通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合

    依赖注入的三种方式:1.构造方法注入 2.set方法注入 3.接口注入

  • 接口隔离原则

    定义:客户端不应该依赖它不需要的接口;类间的依赖关系应该建立在最小的接口上

    解释:接口要尽量小;接口要高内聚;定制服务;一个接口只服务于一个模块或业务逻辑;被污染的接口使用适配器模式进行转化处理

  • 迪米特法则 Law of Demeter

    定义:一个对象应该对其他对象有最少的了解

    解释:一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public方法,我就调用这么多,其他的我一概不关心

    好处:类间解耦,弱耦合,只有弱耦合了以后,类的复用率才可以提高。其要求的结果就是产生了大量的中转或跳转类,导致系统的复杂性提高,同时也为维护带来了难度

  • 开放封闭原则

    定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭

    解释:软件实体应该通过扩展来实现变化

    好处:开闭原则对测试的影响;提高复用性;提高可维护性;面向对象开发的要求

设计模式分类

  • 根据目的分,可分为:创建型、结构型和行为型

    • 创建型用于创建对象

      单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式

    • 结构型用于处理类或对象组合

      适配器模式、桥接模式、外观模式、组合模式、装饰者模式、享元模式、代理模式

    • 行为型用于类或对象之间怎样交互、怎样分配职责

      扩展型:迭代器模式、访问者模式

      命令模式、中介者模式、

      责任链模式、备忘录模式、观察者模式、解释器模式、

      模板方法模式、策略模式、状态模式

  • 根据范围分,可分为:类模式和对象模式

    • 类模式处理类与子类的关系,这种关系在编译时确认下来,属于静态
    • 对象模式处理对象间的关系,它们之间的关系在程序运行时确定,属于动态

About

设计模式实践

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published