Python设计模式(六大)

1.外观模式(Facade)

一层一层向上封装,灵活性会降低,功能完成度高,和python的模块比较像,但对于封装好了的类,将会变得很简单,简洁。

2.六大设计原则

  • 单一职责原则 (Single Responsibility Principle)

一个类直负责一项职责(操作)。一个类,只应该有一个引起它变化的原因。

  • 里氏替换原则 (Liskov Substitution Principle)

所有引用基类的地方必须能透明地使用其子类的对象。(子类父类)

  • 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法;
  • 当子类的方法重载父类的方法时,子类方法的输入参数要比父类方法的输入参数更宽松;(格式等要求上)
  • 依赖倒置原则 (Dependence Inversion Principle)

定义:抽象不应该依赖于细节,细节应当依赖于抽象。要针对接口编程,而不是针对实现编程。尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合。需要注意以下一些地方:

  • 每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备;
  • 变量的表名类型尽量是接口或者抽象类;
  • 尽量不要覆写基类的方法;
  • 结合里氏替换原则使用;
  • 接口隔离原则 (Interface Segregation Principle)

客户端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。 当一个接口太大时,分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干。(类似于单一职责)

  • 接口隔离原则与单一职责原则的审视角度是不相同的,单一职责原则要求的是类和接口职责单一,注重的是职责,这是业务逻辑上的划分,而接口隔离原则要求接口的方法尽量少。
  • 实际中接口的功能按实际需求定义,接口太大太小都不太好。
  • 迪米特原则 (Law of Demeter)

定义:一个对象应该对其他对象有最少的了解。两个对象耦合尽量少

  • 开闭原则 (Open Closed Principle)

软件实体应该对扩展开放,对修改关闭其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。

稳定性:开闭原则要求扩展功能不修改原来的代码,这可以让软件系统在变化中保持稳定。

扩展性:开闭原则要求对扩展开放,通过扩展提供新的或改变原有的功能,让软件系统具有灵活的可扩展性。

posted @ 2018-04-16 20:06  py鱼  阅读(947)  评论(0编辑  收藏  举报
点我回主页