使用 内部类 与抽象继承的方式实现建造者模式,链式调用的方式代码简洁;
子类继承实现实际的建造方法方便扩展.
代码如下:
# -*- coding:utf-8 -*-
import abc
import random
class Product(object):
def __init__(self, product_id=random.random()):
self.uuid = product_id
self.factor = None
self.date = None
def set_factor(self, factor):
self.factor = factor
def set_date(self, date):
self.date = date
# 内部类,作为建造者类的父类
class Abs_Buildder(object):
def __init__(self):
self.factor = "Default_Factor"
self.date = "Today!"
# 子类实现该方法时必须返回self,用来实现链式调用
@abc.abstractmethod
def set_factor(self, factor):
pass
# 子类实现该方法时必须返回self,用来实现链式调用
@abc.abstractmethod
def set_date(self, date):
pass
def build_product(self):
product = Product()