python面向对象之抽象工厂设计模式

2018-12-13 08:57:27来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折



class truck:
def use(self):
return "拉货"
def __str__(self):
return "大卡车"


class minicar:

def use(self):
return "带妹兜风"
def __str__(self):
return "小轿车"


# 定义一个大卡车工厂,作用是创建对象
class truck_factory():
def makecar(self):
return truck()
def makewheel(self):
return "生产大轮子"


# 定义一个小汽车工厂
class car_factory():
def makecar(self):
return minicar()
def makewheel(self):
return "生产小轮子"


# 定义一个方法用于调用工厂类生产相关的对象产品
def Factorys():
#也可以在工厂列表中再添加工厂类
factory = [car_factory(),truck_factory()]
# 此处我选择了car_factory工厂进行对象的创建
return factory[0]


#定义一个“商店”类,类中创建方法用于展示“商品”对象。
class carstop:
def __init__(self,factory = None):
self.Factorys = factory

def showcar(self):
car = self.Factorys.makecar()
wheel = self.Factorys.makewheel()
print("*"*25)
print("我是一辆%s" % (car))
print("我能用%s%s" %(car,car.use()))
print("%s 工厂也能够 %s"%(car,wheel))
print("*"*25)

# 实现对象调用
if __name__ =="__main__":
carstop(Factorys()).showcar()

程序运行结果如下:
*************************
我是一辆小轿车
我能用小轿车带妹兜风
小轿车 工厂也能够 生产小轮子
*************************


抽象工厂模式之我见:
1.适合用在面向对象编程时,在创建一系列函数方法不确定,对象类型不确定时。
2.抽象工厂模型创建的对象没有个性,即生产的对象没有属性。若要添加属性,对其进行实例化。
3.抽象工厂模式非常灵活,可以再进行扩展,生产不同种类的对象,创建各种方法,即添加“工厂”类,再定义函数。



标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:python资源库之socket网络编程

下一篇:Python学习之旅(三十二)