抽象工厂模式

Entity
class Car(object):

    def move(self):

        pass

 

    def music(self):

        pass

 

    def stop(self):

        pass

from com.day11.factoryMethod.entity.Car import Car

 

 

class Ix35(Car):

    def move(self):

        print("Ix35车在移动....")

 

    def music(self):

        print("Ix35正在播放音乐....")

 

    def stop(self):

        print("Ix35车在停止....")

from com.day11.factoryMethod.entity.Car import Car

 

 

class Mingtu(Car):

    def move(self):

        print("Mingtu车在移动....")

 

    def music(self):

        print("Mingtu正在播放音乐....")

 

    def stop(self):

        print("Mingtu车在停止....")

from com.day11.factoryMethod.entity.Car import Car

 

 

class Mini(Car):

    def move(self):

        print("Mini车在移动....")

 

    def music(self):

        print("Mini正在播放音乐....")

 

    def stop(self):

        print("Mini车在停止....")

from com.day11.factoryMethod.entity.Car import Car

 

 

class Suonata(Car):

    def move(self):

        print("Suonata车在移动....")

 

    def music(self):

        print("Suonata正在播放音乐....")

 

    def stop(self):

        print("Suonata车在停止....")

from com.day11.factoryMethod.entity.Car import Car

 

 

class SuvX6(Car):

    def move(self):

        print("SUVX6车在移动....")

 

    def music(self):

        print("SUVX6正在播放音乐....")

 

    def stop(self):

        print("SUVX6车在停止....")

 

Factory
from com.day11.factoryMethod.entity.Mini import Mini

 

from com.day11.factoryMethod.entity.SuvX6 import SuvX6

 

 

class BMWCarFactory(object):

    def select_car_by_type(self, car_type):

        if car_type == "mini":

            return Mini()

        elif car_type == "x6":

            return SuvX6()

from com.day11.factoryMethod.entity.Mingtu import Mingtu

from com.day11.factoryMethod.entity.Ix35 import Ix35

from com.day11.factoryMethod.entity.Suonata import Suonata

 

 

class XianDaiFactory(object):

    def select_car_by_type(self, car_type):

        if car_type == "索纳塔":

            return Suonata()

        elif car_type == "名图":

            return Mingtu()

        elif car_type == "ix35":

            return Ix35()

 

Store
class Store(object):

 

    def select_car(self):

        pass

 

    def order(self, car_type):

        return self.select_car(car_type)

from com.day11.factoryMethod.factory.BMWCarFactory import BMWCarFactory

from com.day11.factoryMethod.store.Store import Store

 

 

class BMWCarStore(Store):

    def select_car(self, car_type):

        return BMWCarFactory().select_car_by_type(car_type)

from com.day11.factoryMethod.factory.XianDaiFactory import XianDaiFactory

from com.day11.factoryMethod.store.Store import Store

 

 

class XianDaiCarStore(Store):

    def select_car(self, car_type):

        return XianDaiFactory().select_car_by_type(car_type)

 

测试
 

 

# 测试宝马

from com.day11.factoryMethod.store.BMWCarStore import BMWCarStore

from com.day11.factoryMethod.store.XianDaiCarStore import XianDaiCarStore

 

store1 = BMWCarStore()

mini = store1.order("mini")

mini.move()

mini.music()

mini.stop()

x6 = store1.order("x6")

x6.move()

x6.music()

x6.stop()

# 测试现代

store1 = XianDaiCarStore()

mingtu = store1.order("名图")

mingtu.move()

mingtu.music()

mingtu.stop()

 

"""

Mini车在移动....

Mini正在播放音乐....

Mini车在停止....

SUVX6车在移动....

SUVX6正在播放音乐....

SUVX6车在停止....

Mingtu车在移动....

Mingtu正在播放音乐....

Mingtu车在停止....

 

"""

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值