如何理解面向对象?
- python世界里一切皆对象,因为一切都可以分类。
- 一切都有属性(名词),都有方法(动词)
- 创建对象消耗资源,怎么解决?设计模式!
- 设计模式有点像算法,都是套路,架构师,自己设计一套框架用到
创建型模式:
1.简单工厂模式
2.工厂方法模式
3.抽象工厂模式
4.创建者模型
5.原型模式
6.单例模式
结构型模式
1.外观模式
2.适配器模式
3.代理模式
4.装饰模式
5.桥模式
6.组合模式
7.享元模式
行为模式
1.模板方法模式
2.观察者模式
3.责任链模式
4.命令模式
5.访问者模式
6.调停者模式
7.备忘录模式
8.迭代器模式
9.解释器模式
归纳总结:要创建对象(创建型模式),对象(类)之间要有结构(结构型模式),类要有属性方法(行为模式)
一切设计模式都源于生活,现实中都能找到映射,多去感悟
python不像java中比较强调设计模式(编程套路),动态语言也内置了像是装饰器、迭代器等模式,另外python中的『一切皆对象』、鸭子类型等也导致python中实现的设计模式和其他语言有些差别。