什么是设计模式?
设计模式用于表示开发人员用于创建软件或Web应用程序的模式。这些模式是根据需求分析选择的。模式描述问题的解决方案,何时何地应用解决方案以及实施的后果。 设计模式是经过总结、优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码。反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。设计模式不会绑定具体的编程语言。一个好的设计模式应该能够用大部分编程语言实现(如果做不到全部的话,具体取决于语言特性)。
三种最基本的设计模式:
创建模式:提供实例化的方法,为适合的状况提供相应的对象创建方法。
结构化模式:通常用来处理实体之间的关系,使得这些实体能够更好地协同工作。
行为模式:用于在不同的实体建进行通信,为实体之间的通信提供更容易,更灵活的通信方法。
设计模式六大原则
开闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
里氏替换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。
依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。
接口隔离原则:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用。
单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
设计模式的结构
模式名称: 以简短有效的方式描述了模式。
模式动机: 描述了模式的作用。
模式实用性: 描述了适用模式的情况列表。
参与者与后果: 参与者包括参与设计模式的类和对象,以及该模式存在的后果列表。
常用的Python设计模式
Python是一种开源脚本语言。它具有支持多种设计模式的库。python的语法易于理解,并使用英语关键字。Python提供了对下面提到的设计模式列表的支持。这些设计模式将在教程中进行讲解。
模型-视图-控制器模式
单例模式
工厂模式
建造者模式
原型模式
外观模式
命令模式
适配器模式
装饰模式
代理模式
责任链模式
观察者模式
状态模式
策略模式
模板模式
享元模式
抽象工厂模式
面向对象模式
使用设计模式的好处
模式为开发人员提供了针对特定问题的经过尝试和测试的解决方案的选择。
所有设计模式都是与语言无关的。
模式有助于实现沟通并维护良好的文档。
它包括成就记录,以减少项目的任何技术风险。
设计模式使用起来非常灵活并且易于理解。