python3は単に結合された設計パターンを実装します

組み合わせモードでは、カテゴリを全体に分類し、ツリー構造を使用してすべての全体を記述することにより、複数の全体間の関係を整理します。

一般的な記述方法は、カテゴリオブジェクトの下にオブジェクトの複数の要素を追加することであり、オブジェクトは他のオブジェクトの下の要素です。簡単に言うと、学校には本部があり、その下に教師部門と入学部門があります。本部には支部学校と支部学校があります。

私の意見では、デザインパターンの使用は、本に記載されている特定の問題の解決に限定されません。柔軟に適用するには、豊富なビジネス経験が必要です。私の能力は限られています。これも簡単な例です。追加の柔軟な操作は、個人の書き込み方法に依存することを説明します。

まず、学校の基本クラスを作成します。

# ルート
classroot:
 name =''
 def __init__(self, name):
 self.name = name
 def add(self, root):
 pass 

上記の学校の基本クラスの初期化メソッドは名前を受け取ることであり、抽象メソッドaddがあります。

学校の基本クラスを作成したら、新しい学校のクラスを作成し、ルートの基本クラスを継承します。

# 学校の授業
classSchool(root):
 childrenroot =[]
 def add(self, root):
 self.childrenroot.append(root)

上記のスクールクラスでは、ルート基本クラスが継承され、ルート値を受け取ってchildrenrootリストに追加するためのaddメソッドが実装されているため、現在のオブジェクトの下に子ノードを追加したり、従属オブジェクトを追加したりできます。

新しい入学事務局クラスと教師部門クラスを作成します。

# アドミッションズオフィス
classStudentAdmissionDept(root):  
 def __init__(self, name):
 self.name = name
# 学部
classFacultyDepartment(root):  
 def __init__(self, name):
 self.name = name

上記の内容は非常に単純で、すべてルートから継承され、初期化メソッドにすぎません。

呼び出しの実装を開始します。まず、新しい学校本部オブジェクトを作成し、この本部オブジェクトの下に入学事務局オブジェクトと教師部門オブジェクトを追加します。

root =School('本部')
root.add(StudentAdmissionDept('本社アドミッションズオフィス'))
root.add(FacultyDepartment('本社学部'))

新しい本社オブジェクトを作成したら、ブランチキャンパスオブジェクトを追加します。ブランチキャンパスの部門設定は、メインキャンパスの設定と同じです。

s1 =School('ギリンキャンパス')
s1.add(StudentAdmissionDept('ギリンキャンパスアドミッションズオフィス'))
s1.add(FacultyDepartment('ギリンキャンパス教師部'))
root.add(s1)

最初のギリンキャンパスを構成した後、ルート本部のaddメソッドを使用して、現在のギリンキャンパスを部下として追加します。

さらにいくつかのキャンパスを作成します。

s2 =School('深センキャンパス')
s2.add(StudentAdmissionDept('深センキャンパスアドミッションズオフィス'))
s2.add(FacultyDepartment('深センキャンパスの教師部門'))
root.add(s2)

s3 =School('広州キャンパス')
s3.add(StudentAdmissionDept('広州キャンパスアドミッションズオフィス'))
s3.add(FacultyDepartment('広州キャンパスの教師部門'))
root.add(s3)

上記の構成方法は、ルート本部キャンパスの下位として構成された最初のキャンパスの構成方法と同じです。

最後に、トラバーサルを使用して、各キャンパスの名前を印刷します。

print('\n',root.name,'低学年レベル:\n')for i in root.childrenroot:print(i.name)

結果は次のとおりです。

タイプセットがないため、上記の結果は視覚的な表示レベルが良くなく、残りは自分でタイプセットして出力するだけで済みます。

現在の記事に対応するコード記述では、新しいクラスを作成し、呼び出しメソッドと出力メソッドをカプセル化し、組み合わせた設計パターンを簡単に使用することで、最後の新しいキャンパスと構成情報を作成できます。

完全なコードは次のとおりです。

# ルート
classroot:
 name =''
 def __init__(self, name):
 self.name = name
 def add(self, root):
 pass 
  
# 学校の授業
classSchool(root):
 childrenroot =[]
 def add(self, root):
 self.childrenroot.append(root) 

# アドミッションズオフィス
classStudentAdmissionDept(root):  
 def __init__(self, name):
 self.name = name

 
# 学部
classFacultyDepartment(root):  
 def __init__(self, name):
 self.name = name
 
 
root =School('本部')
root.add(StudentAdmissionDept('本社アドミッションズオフィス'))
root.add(FacultyDepartment('本社学部'))

s1 =School('ギリンキャンパス')
s1.add(StudentAdmissionDept('ギリンキャンパスアドミッションズオフィス'))
s1.add(FacultyDepartment('ギリンキャンパス教師部'))
root.add(s1)

s2 =School('深センキャンパス')
s2.add(StudentAdmissionDept('深センキャンパスアドミッションズオフィス'))
s2.add(FacultyDepartment('深センキャンパスの教師部門'))
root.add(s2)

s3 =School('広州キャンパス')
s3.add(StudentAdmissionDept('広州キャンパスアドミッションズオフィス'))
s3.add(FacultyDepartment('広州キャンパスの教師部門'))
root.add(s3)print('\n',root.name,'低学年レベル:\n')for i in root.childrenroot:print(i.name)

上記は、python3の組み合わせ設計パターンの簡単な実装の詳細な内容です。Pythonでの組み合わせ設計パターンの実装の詳細については、ZaLou.Cnの他の関連記事に注意してください。

Recommended Posts

python3は単に結合された設計パターンを実装します
Python3はシングルトンデザインパターンを実装しています
Pythonは単にスネークゲームを実装します
Pythonは実店舗のゲームを実装しています
Pythonがメール機能を実装する方法
Pythonは最も急な降下方法を実装します
Pythonは実際の銀行システムを実装しています
Pythonがタイマー機能を実装する方法
Pythonは航空機戦争プロジェクトを実装します
Pythonは分数シーケンスの合計を実装します
pythonは勾配メソッドを実装しますpython最速の降下メソッド
Pythonのデザインパターン
PythonはDoudizhuでカードのシャッフルを実装します
Pythonはスネークゲームのソースコードを実装しています
2.1 Pythonインタープリター(pythonインタープリター)
Pythonはスーパーマリオを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはtic-tac-toeゲームを実装しています
Pythonはマンマシンゴバンを実装します
PythonはTetrisゲームを実装しています
Pythonはminesweeperゲームを実装しています
Pythonはスキャンツールを実装しています
Pythonの基盤を統合する(2)
Pythonはしきい値回帰を実装します
Pythonは地雷除去ゲームを実装しています
Pythonは電子辞書を実装しています
Pythonは推測ゲームを実装しています