ホームページ  >  記事  >  バックエンド開発  >  Pythonのデザインパターンを学ぶための「Appearance Pattern」の紹介例

Pythonのデザインパターンを学ぶための「Appearance Pattern」の紹介例

高洛峰
高洛峰オリジナル
2017-03-19 15:16:501255ブラウズ

PythonDesign PatternAppearance Pattern は、結合を減らすためにコード管理のために複数のモジュールを分割することを推奨しています。

アプリケーションの機能:

多くの複雑で小さな関数を呼び出す必要があり、これらの呼び出しがある程度関連している場合、つまり 1 つの呼び出しが連続している場合。

構造的特徴:

元の複雑で多数の呼び出しを 1 つのエントリ クラスに統合します。今後は、この 1 つのエントリを通じてのみ呼び出すことができます。

コード構造の例:

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


以上がPythonのデザインパターンを学ぶための「Appearance Pattern」の紹介例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。