python---重点(设计模式)
2024-08-29 08:56:45
前戏:设计模式简介
设计模式是面向对象设计的解决方案,是复用性程序设计的经验总结。(与语言无关,任何语言都可以实现设计模式)
设计模式根据使用目的的不同而分为创建型模式(Creational Pattern),结构性模式(Structural Pattern)和行为型模式(Behavioral Pattern)
创建型模式:提出来对象创建的解决方案以及数据封装的方法。降低了创建对象时代码实现的复杂度,是对象的创建时能够满足特定的要求。例如工程模式,抽象工厂模式,单例模式,生成器模式
结构型模式:描述了对象之间的体系结构,通过组合,继承等方式改善体系结构,降低体系结构中的组件依赖性。例如,适配器模式。桥模式,组合模式,装饰器模式,外观模式等。
行为模式:描述了对象之间的交互和各自的职责,有助于实现程序中对象的通讯和流程的控制。例如:迭代器模式,解释器模式,中介者模式,观察者模式等。
使用python同样可以实现各种设计模式,而且实现过程比较简单。
一:工厂模式
在工厂方法模式中,工厂方法用于创建产品。并隐藏了产品对象实例化的过程。过程方法根据不同的参数生成不同的对象。因此客户程序只需要知道工厂类和产品的父类,并不需要知道产品的创建过程以及返回产品的类型。
例如:定义Factory类创建不同的Fruit对象,Apple类和Banana类继承自Fruit类。那么这两个类(Apple和和Banana类就是我们需要去生成的产品)
实现工厂方法(简单版本)
class Factory:
def createFruit(self,fruit):
if fruit == "apple":
return Apple()
elif fruit == "banana":
return Banana() class Fruit:
def __str__(self):
return "fruit" class Apple(Fruit):
def __str__(self):
return "apple" class Banana(Fruit):
def __str__(self):
return "banana" if __name__ == "__main__":
factory = Factory() a = factory.createFruit("apple")
b = factory.createFruit("banana")
print(a,b) #apple banana
简单实现,并不完美,后面补上
最新文章
- Ubuntu14.0下安装Zend Framework 2
- C#多线程同步事件及等待句柄AutoResetEvent 和 ManualResetEvent
- css width height
- jQuery事件对象event的属性和方法
- shell text process code
- Centos 关闭后台进程 .sh 等
- Icon资源详解[2]
- Xshell5最新版激活
- AngularJS分页实现
- thinkPHP模板的输出和模型的使用
- Maven 解决JAR包冲突
- POJ 1011 sticks 搜索
- 阿里云 Centos7.3安装mysql5.7.18 rpm安装
- 字符串拼接data-id时注意事项
- canvas绘制时钟及注释及save和restore的用法
- kubernetes实战之运行aspnetcore webapi微服务 - kubernetes
- Vue.js 技术揭秘(学习) vue流程
- Hadoop生态圈-Zookeeper的工作原理分析
- 卡通渲染Shader
- C语言 · 确定元音字母位置