你家新买的冰箱竟然不能上网,python设计模式之工厂模式

图片 1

3.抽象工厂模式

抽象工厂模式的主要目的是提供一个接口来创建一系列相关对象而无需指定具体的类。这个模式与与工厂方法模式的区别在于,它的一个方法子类,可以创建一系列的对象。

依然用可乐来举例,只喝普通的可乐还不足以让我们非常快乐,那么如果有一杯冰可乐,想必就能满足我们了。

于是我们的抽象产品类变为了两个,一个是冰可乐,一个是普通可乐,具体产品类有百事冰可乐、可口可乐冰可乐,普通百事,普通可口可乐。抽象工厂类有生产冰可乐和生产普通可乐的抽象方法,具体工厂类有百事工厂,可口可乐工厂。

from abc import ABCMeta,abstractmethodclass Ice_coke(metaclass=ABCMeta):    @abstractmethod    def drink:        passclass Ordinary_coke(metaclass=ABCMeta):    @abstractmethod    def drink:        passclass Coca_ice:    def drink:        print('drink  Coca-ice-Cola')class Pepsi_ice:    def drink:        print('drink Pepsi-ice-Cola')class Coca_ordinary(Ordinary_coke):    def drink:        print('drink Coca-ordinary-Cola')class Pepsi_ordinary(Ordinary_coke):    def drink:        print('drink Pepsi-ordinary-Cola')class Fast_food_restaurant(metaclass=ABCMeta):    @abstractmethod    def make_ice_coke:        pass    @abstractmethod    def make_ordinary_coke:        passclass Coca_produce(Fast_food_restaurant):    def make_ice_coke:        return Coca_ice()    def make_ordinary_coke:        return Coca_ordinary()class Pepsi_produce(Fast_food_restaurant):    def make_ice_coke:        return Pepsi_ice()    def make_ordinary_coke:        return Pepsi_ordinary()KCD=Coca_produce()coke=KCD.make_ice_coke()coke.drink()#drink  Coca-ice-Cola

这样再有其他类型的可乐或者其他品牌的可乐,只需要添加方法或者类就可以了。


参考《Python设计模式》

你家新买的冰箱还不能上网?(物联网如何影响印刷)

迷你生产车间,别看迷你,真生产

三.python实现工厂模式

“物联网”正在发生,产业的变化也加快了速度,如何成为产业供应链中具有竞争力的印刷加工的角色,是我们每个印刷人不得不好好思考一番的问题了。

图片 2

二.工厂模式的优点

  • 松耦合,对象的创建独立于类的实现

  • 客户端无需了解创建对象的类,只需知道需要传递的接口,方法和参数就能够创建所需要的对象

  • 很容易扩展工厂添加其他类型对象的创建,而使用者只需要改变参数就可以了

现在电视,冰箱,电饭煲,体重计……都可以上网,好像想买到一个不能上网的家用电器还挺难的。对于消费者来讲,上网给大家带来更好的体现。对于产业链来说,对于产业链的供应商就提供了实时的生产需求。

图片 3

一.理解工厂模式

在面向对象编程中,术语“工厂”表示一个负责创建替他类型对象的类。通常情况下,作为一个工厂的类有一个对象以及与它关联的多个方法。客户端使用某些参数调用此方法,之后,工厂会据此创建所需类型的对象,然后将它们返回给客户端。

简单理解:工厂模式依然是一种创建型设计模式,作为工厂,它所关心的是产品的产生,也就是对象的创建,我们利用工厂来创建对象,而不必我们亲自创建对象,我们无需去理解如何创建对象,只需要向工厂提出要求,让工厂去根据你的要求,给你生产你要的产品,给你相应的对象,这种模式便叫做工厂模式。

笔者上下班乘坐地铁时,偶尔口干舌燥的时候会在地铁站里的自动贩卖机里买一瓶可乐,不用耽误自己的行程,也减少了在便利店排队付钱的烦恼。

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图