Python設計模式-策略模式

策略模式:定義一系列算法,將每個算法都封裝起來,並且使他們之間可以相互替換,使算法可以獨立於使用於它的用戶而變化。

from abc import ABCMeta,abstractmethod

#引用ABCMeta和abstractmethod來定義抽象類和抽象方法

class IVehicle(metaclass=ABCMeta):
    @abstractmethod
    def running(self):
        pass

class ShareBike(IVehicle):
    def running(self):
        print("共享單車方便又快捷",end='')

class Bus(IVehicle):
    def running(self):
        print("公共汽車可以直接到達",end='')

class Subway(IVehicle):
    def running(self):
        print("地鐵真方便",end='')

class Classmate:

    def __init__(self,name,vehicle):
        self.__name = name
        self.__vehicle = vehicle

    def comingToDinner(self):
        print(self.__name + " " ,end='')
        self.__vehicle.running()
        print("來聚餐")

def test():
    bike = ShareBike()
    tom = Classmate("Tom",bike);
    tom.comingToDinner()

    bus = Bus()
    jeery = Classmate("Jeery", bus);
    jeery.comingToDinner()

    subway = Subway()
    kate = Classmate("Kate", subway);
    kate.comingToDinner()

test()

運行結果:

Tom 共享單車方便又快捷來聚餐
Jeery 公共汽車可以直接到達來聚餐
Kate 地鐵真方便來聚餐

aaa

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章