アプリケーション機能:
多くの複雑で小さな関数が呼び出し要件を必要とする場合、これらの呼び出しにはしばしばある程度の相関があります。つまり、1つの呼び出しはシリーズです。
構造的特性:
元々複雑で多数の呼び出しを計画して統合し、エントリクラスをクラスに導き、これからこのエントリを通してのみ電話をかけることができます。
コード構造の例:
class moduleone(object):def create(self):print 'module one instance' def delete(self):print 'delete module one instance' class moduletwo(object):def create(self):print 'module two instance' def delete(self):print 'delete module 2 instance' class facade(object):def ___(self) 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.self.module_create( 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 'small 1' small 1 '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 de do_small3(外部:def __init __(self):self .__ small1 = small_or_piece1()self .__ small2 = small_or_piece_2()self .__ small3 = small_or_piece_3()def1()def1()def1()元の複雑な関数の呼び出し関係をクリアし、自己を統合することができます。__small2.do_small2()def method2()def method2():self .__ small2.do_small2()self .__ small3.do_small3()if __name__ == '__main__':osd = osd.method1()osd.method2()osd.method1()
結果:
小さい1をしますsmall2 2をしますsmall2 do small3