Python设计模式之建造者模式实例详解
作者:Andy冉明 时间:2021-07-13 17:37:03
本文实例讲述了Python设计模式之建造者模式。分享给大家供大家参考,具体如下:
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
下面是一个建造者模式的demo
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大话设计模式
设计模式——建造者模式
建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以常见不同的表示
特性: 指挥者(Director) 指挥 建造者(Builder) 建造 Product
"""
import abc
class Builder(object):
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def create_header(self):
pass
@abc.abstractmethod
def create_body(self):
pass
@abc.abstractmethod
def create_hand(self):
pass
@abc.abstractmethod
def create_foot(self):
pass
class Thin(Builder):
def create_header(self):
print '瘦子的头'
def create_body(self):
print '瘦子的身体'
def create_hand(self):
print '瘦子的手'
def create_foot(self):
print '瘦子的脚'
class Fat(Builder):
def create_header(self):
print '胖子的头'
def create_body(self):
print '胖子的身体'
def create_hand(self):
print '胖子的手'
def create_foot(self):
print '胖子的脚'
class Director(object):
def __init__(self, person):
self.person = person
def create_preson(self):
self.person.create_header()
self.person.create_body()
self.person.create_hand()
self.person.create_foot()
if __name__=="__main__":
thin = Thin()
fat = Fat()
director_thin = Director(thin)
director_fat = Director(fat)
director_thin.create_preson()
director_fat.create_preson()
运行结果:
瘦子的头
瘦子的身体
瘦子的手
瘦子的脚
胖子的头
胖子的身体
胖子的手
胖子的脚
上面类的设计如下图:
指挥者Director 调用建造者Builder的对象 具体的建造过程是在Builder的子类中实现的
希望本文所述对大家Python程序设计有所帮助。
来源:https://www.cnblogs.com/onepiece-andy/p/python-builder-pattern.html
标签:Python,设计模式,建造者模式
0
投稿
猜你喜欢
python包相关知识点之包的导入、相对路径以及绝对路径
2023-08-11 11:09:46
python web.py启动https端口的方式
2021-10-20 11:33:44
Openlayers学习之地图比例尺控件
2024-04-10 10:36:59
原生js封装的一些jquery方法(详解)
2024-04-19 09:47:01
Python内建函数之raw_input()与input()代码解析
2021-01-12 01:37:36
完美卸载Oracle数据库
2024-01-18 02:50:27
Python语法之精妙的十个知识点(装B语法)
2022-04-15 21:43:51
PHP实现更改hosts文件的方法示例
2023-10-19 18:30:12
详解Open Folder as PyCharm Project怎么添加的方法
2021-06-25 05:56:53
Python列表解析操作实例总结
2022-10-10 09:59:38
Python实现迭代时使用索引的方法示例
2022-12-15 11:08:48
python+pygame实现简易五子棋小游戏的三种方式
2023-09-26 06:01:43
Python的Django框架中settings文件的部署建议
2023-07-08 21:39:43
python开发之str.format()用法实例分析
2022-01-15 22:10:23
Python时间操作之pytz模块使用详解
2023-05-10 02:57:17
SQL Server 2008 正式版安装指南 包含序列号
2024-01-14 19:12:47
详解go语言中sort如何排序
2023-09-03 14:00:38
详解Python读取和写入操作CSV文件的方法
2021-03-01 23:13:43
分享JavaScript与Java中MD5使用两个例子
2024-05-22 10:40:17
小结下dom节点操作
2011-03-08 10:33:00