设计模式-Python
转载自:https://www.cnblogs.com/Liqiongyu/p/5916710.html
设计模式是经过总结,优化的,对我们经常会碰到的一些编程问题的可重用解决方案,一个设计模式并不像一个类一样或者一个库一样能够直接作用于我们的代码,反之设计模式更加高级,它是一种必须在特定情况下得一种模板、设计模式不会绑定具体的编程语言。一个好的设计模式应该能够用大部分编程语言实现。最为重要的是,设计模式也是一把双刃剑。在不恰当情况会噪声灾难,从而带来麻烦。
可以通过程序设计的基本概念来理解模式:增加一个抽象层,抽象一个事物就是隔离任何具体细节,这么做的目的是为了将那些核心部分从其他细节分离出来。当你发现你自己程序中某些部分精彩因为某些原因改动,而你不想让这些改动引发其他部分的改动,这时候你就需要思考那些不会变动的设计方法了。这么做不仅使得代码的可维护性高,而且让代码更加容易理解,从而降低开发成本。
这里列举了三种最基本的设计模式:
1,创建模式,提供实例化的方法,为适合的状况提供相应的对象创建方法
2,结构化模式,通常用来处理实体之间的关系,使得这些实体能够更好地协同工作。
3,行为模式,用于在不同的实体建进行通信,为实体之间的通信提供更加容易,更灵活的通信方法。
创建型:
1,Factory Method (工厂方法)
2,Abstract Factory(抽象工厂)
3,Builder(建造者)
4,Prototype(原型)
5,Singleton(单例)
结构型
1,Adapter Class/Object(适配器)
2,Bridge(桥接)
3,Composite(组合)
4,Decorator(装饰)
5,Facade(外观)
。。。。
工厂方法
意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类
适用性:当一个类不知道它所必需创建的对象的类的时候,当一个类希望由它的子类来指定它所创建的对象的时候,当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。