測者的測試技術手冊:Python的抽象工廠類

抽象工廠模式,提供一個建立一系列相關或相互依賴對象的接口,而無須指定它們具體的類。屬於對象建立型模式。

#!/usr/bin/env python # -*- coding: utf-8 -*- #__from__ = ' abstract_factory ' 
#__author__ = ' Mr.Tester CrissChan ' 
#__instruction__ = '抽象工廠模式,打印紙例子' 
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__ )複製代碼

相關文章
相關標籤/搜索