当前位置 : 主页 > 编程语言 > python >

设计模式(Python语言)----建造者模式

来源:互联网 收集:自由互联 发布时间:2022-08-10
更多信息请参考 【设计模式】 建造者模式含义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 建造者模式中的角色 抽象建造者(Builder) 具体建造者


更多信息请参考 【设计模式】

建造者模式含义

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

建造者模式中的角色

  • 抽象建造者(Builder)
  • 具体建造者(Concrete Builder)
  • 指挥者(Director)
  • 产品(Product)

建造者模式优点

  • 隐藏了一个产品的内部结构和装配过程
  • 将构造代码与表示代码分开
  • 可以对构造过程进行更精细的控制

建造者模式实例

代码如下:

import abc

class Player(object):
def __init__(self,face=None,body=None,arm=None,leg=None):
self.face=face
self.body=body
self.arm=arm
self.leg=leg

def __str__(self):
return f"{self.face},{self.body},{self.arm},{self.leg}"

class PlayerBuilder(metaclass=abc.ABCMeta):
@abc.abstractmethod
def build_face(self):
pass

@abc.abstractmethod
def build_body(self):
pass

@abc.abstractmethod
def build_arm(self):
pass

@abc.abstractmethod
def build_leg(self):
pass

class SexGirlBuilder(PlayerBuilder):
def __init__(self):
self.player=Player()

def build_face(self):
self.player.face="漂亮脸蛋"

def build_body(self):
self.player.body="苗条"

def build_arm(self):
self.player.arm="漂亮胳膊"

def build_leg(self):
self.player.leg="大长腿"

class Monster(PlayerBuilder):
def __init__(self):
self.player=Player()

def build_face(self):
self.player.face="怪兽脸蛋"

def build_body(self):
self.player.ody="怪兽"

def build_arm(self):
self.player.arm="怪兽胳膊"

def build_leg(self):
self.player.leg="怪兽腿"

class PlayDirector(object):
def build_player(self,builder):
builder.build_body()
builder.build_face()
builder.build_arm()
builder.build_leg()
return builder.player

if __name__=="__main__":
builder=SexGirlBuilder()
director=PlayDirector()
p=director.build_player(builder)
print(p)

执行结果如下:

漂亮脸蛋,苗条,漂亮胳膊,大长腿

【本文由:阿里云代理 http://www.56aliyun.com 复制请保留原URL】
上一篇:设计模式(Python语言)----简单工厂模式
下一篇:没有了
网友评论