抽象工廠模式,提供一個建立一系列相關或相互依賴對象的接口,而無須指定它們具體的類。屬於對象建立型模式。
class AbstraceFactroy ( object ) : def getSize ( self ) : return Size() def getColor ( self ): return Colour() class Size ( AbstraceFactroy ) : @ staticmethod def sizeFactory (type): if type == ' A4 ' : return A4() if type == ' A3 ' : return A3() class A4 ( Size ) : def __init__ ( self ) : print ' A4 \'s size : 210 mm × 297 mm ' class A3 ( Size ) : def __init__ ( self ) : print ' A3 \'s size : 297 mm×420 mm‘ class Colour ( AbstraceFactroy ) : @ staticmethod def colorFactory ( type ) : if type == 'White' : return White( ) if type == ' Color ' : return Color() class White ( Colour ) : def __init__ ( self ) : print ' This is a white paper' class Color ( Colour ) : def __init__ ( self ) : print ' This is a color paper ' if __name__ == ' __main__ ' : abstractFactory = AbstraceFactroy () types = Size.__subclasses__ () for type in types : size = abstractFactory.getSize().sizeFactory( type.__name__ ) types = Colour.__subclasses__() for type in types: colour = abstractFactory.getColor().colorFactory( type.__name__ )複製代碼