Skip to content

23种设计模式,学习备忘录,一天一模式, 轻松学到家

Notifications You must be signed in to change notification settings

Byronlee/Design-patterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Design-patterns

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、 让代码更容易被他人理解、保证代码可靠性。 毫无疑问:

  • 设计模式于己于他人于系统都是多赢的;
  • 设计模式使代码编制真正工程化;
  • 设计模式是软件工程的基石脉络,如同大厦的结构一样。

7大设计原则

  • 开-闭原则(Open-Closed Principle, OCP):

    • 一个软件实体应当对扩展开发,对修改关闭.说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.换言之,应当可以在不必修改源代码的情况下改变这个模块的行为,在保持系统一定稳定性的基础上,对系统进行扩展。这是面向对象设计(OOD)的基石,也是最重要的原则。
  • 里氏代换原则(Liskov Substitution Principle,常缩写为.LSP)

    • 由Barbar Liskov(芭芭拉.里氏)提出,是继承复用的基石。
    • 严格表达:如果每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换称o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型.
  • 依赖倒置原则(Dependence Inversion Principle),要求客户端依赖于抽象耦合.

    • 表述:抽象不应当依赖于细节,细节应当依赖于抽象.(Program to an interface, not an implementaction)
  • 接口隔离原则(Interface Segregation Principle, ISP)

    • 一个类对另外一个类的依赖是建立在最小的接口上。
    • 使用多个专门的接口比使用单一的总接口要好.根据客户需要的不同,而为不同的客户端提供不同的服务是一种应当得到鼓励的做法.就像"看人下菜碟"一样,要看客人是谁,再提供不同档次的饭菜.
    • 胖接口会导致他们的客户程序之间产生不正常的并且有害的耦合关系.当一个客户程序要求该胖接口进行一个改动时,会影响到所有其他的客户程序.因此客户程序应该仅仅依赖他们实际需要调用的方法.
  • 合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)

    • 在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过这些向对象的委派达到复用已有功能的目的.这个设计原则有另一个简短的表述:要尽量使用合成/聚合,尽量不要使用继承.
  • 迪米特法则(Law of Demeter LoD)又叫做最少知识原则(Least Knowledge Principle,LKP),就是说,一个对象应当对其他对象有尽可能少的了了解.

  • 单一职责原则(Simple responsibility pinciple SRP)

  • 就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责.应该把多于的指责分离出去,分别再创建一些类来完成每一个职责.

常说的OO五大原则就是指其中的

  • 单一职责原则
  • 开放闭合原则
  • 里氏替换原则
  • 依赖倒置原则
  • 接口隔离原则

About

23种设计模式,学习备忘录,一天一模式, 轻松学到家

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages