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



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.抽象工厂模式非常灵活,可以再进行扩展,生产不同种类的对象,创建各种方法,即添加“工厂”类,再定义函数。



posted @ 2018-12-12 20:07  石桥浪子  阅读(358)  评论(2编辑  收藏  举报