舉例剖析Python中設計形式以外不雅形式的應用。本站提示廣大學習愛好者:(舉例剖析Python中設計形式以外不雅形式的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是舉例剖析Python中設計形式以外不雅形式的應用正文
運用特征:
在許多龐雜而小功效須要挪用需求時,並且這些挪用常常還有必定相干性,即一挪用就是一系列的。
構造特征:
把本來龐雜而單一的挪用,計劃同一到一個進口類中,從此只經由過程這一個進口挪用便可以了。
代碼構造示例:
class ModuleOne(object):
def Create(self):
print 'create module one instance'
def Delete(self):
print 'delete module one instance'
class ModuleTwo(object):
def Create(self):
print 'create module two instance'
def Delete(self):
print 'delete module two instance'
class Facade(object):
def __init__(self):
self.module_one = ModuleOne()
self.module_two = ModuleTwo()
def create_module_one(self):
self.module_one.Create()
def create_module_two(self):
self.module_two.Create()
def create_both(self):
self.module_one.Create()
self.module_two.Create()
def delete_module_one(self):
self.module_one.Delete()
def delete_module_two(self):
self.module_two.Delete()
def delete_both(self):
self.module_one.Delete()
self.module_two.Delete()
有點相似署理形式,分歧的地方是,外不雅形式不只署理了一個子體系的各個模塊的功效,同時站在子體系的角度,經由過程組合子體系各模塊的功效,對外供給加倍高層的接口,從而在語義上加倍知足子體系層面的需求。
跟著體系功效的赓續擴大,當須要將體系劃分紅多個子體系或子模塊,以削減耦合、下降體系代碼龐雜度、進步可保護性時,署理形式平日會有效武之地。
再來看一個例子:
class small_or_piece1:
def __init__(self):
pass
def do_small1(self):
print 'do small 1'
class small_or_piece_2:
def __init__(self):
pass
def do_small2(self):
print 'do small 2'
class small_or_piece_3:
def __init__(self):
pass
def do_small3(self):
print 'do small 3'
class outside:
def __init__(self):
self.__small1 = small_or_piece1()
self.__small2 = small_or_piece_2()
self.__small3 = small_or_piece_3()
def method1(self):
self.__small1.do_small1() ##假如這裡挪用的不只2兩函數,感化就顯示出來了,可以把本來龐雜的函數挪用關系清晰化,同一化
self.__small2.do_small2()
def method2(self):
self.__small2.do_small2()
self.__small3.do_small3()
if __name__ == '__main__':
osd = outside()
osd.method1()
osd.method2()
成果:
do small 1 do small 2 do small 2 do small 3