Python 3ビルダーモードを実現するためのコード例


ビルダーモード
作成者モードは、複雑なオブジェクトを作成するために使用されます。建築者モードを使用すると、複雑なプロセスを明確にし、明確にし、オブジェクトの作成と使用を結合することができます。実際にコードの角度から見て、複数回のパッケージ化を行って、コード構造をより規範化させて合理的で、階層構造がより鮮明です。
複雑なオブジェクトでは、このクラスを実現するために多くのコードを作成する必要があります。また、初期化を行う際には、大量のパラメータが初期化される場合があります。
建設者モードは、1つのクラスを複数の作成ステップに分割し、これらのステップはほとんどの関連資料において、擬人化として一般的に表現される。例えば建築者、指揮者、監督者などが、これらの名詞の擬人化は完全に読者に完全な意味を与えることができない。これらのキャラクターに必要なことを詳しく説明します。
この文章は水文で、家を建てることを簡単な例として説明します。
まず私達は家の基礎を作って、家をシミュレートします。

class House:#    
  def __init__(self):
    self.size=0
    self.floor=0
    self.garage=0
    self.courtyard=0
  def __str__(self):
    houseInfo='     '+str(self.size)+'  ,'+str(self.floor)+'  ,'+str(self.garage)+'   '+str(self.courtyard)+'   '
    return houseInfo
その中ではsize、flor、garage、courtyardを使って家の情報を記録して、労働者が家を建てる時に記録します。
次に私達は労働者の種類を作って、具体的に私達の家を建てに行きます。

class HouseBuilder:#      
  def __init__(self):
    self.house=House()
  def buildGarage(self,amount):
    self.house.garage=amount
    print(self.house)
  def buildFloor(self,amount):
    self.house.floor=amount
    print(self.house)
  def buildSize(self,amount):
    self.house.size=amount
    print(self.house)
  def buildCourtyard(self,amount):
    self.house.courtyard=amount
    print(self.house)
建築sizeサイズの敷地面積、ガレージ数、flover家屋階及びcourtyard庭園数を定義し、これらの方法にはいずれも一つのパラメータが導入されています。
労働者ができたら、もう一つの請負業者が来て、請負業者はより良いのは統一的に計画を立てて建築するのが適当で、同時にユーザーとのドッキング者です。

class Foreman:#  
  def __init__(self):
    self.builder=HouseBuilder()
  def build(self,size,floor,garage,courtyard):#    
    self.builder.buildSize(size)
    self.builder.buildFloor(floor)
    self.builder.buildGarage(garage)
    self.builder.buildCourtyard(courtyard)
請負頭の初期化関数では、労働者クラス、つまり家の建築者を新たに作って、その後、建物を建てる際にはまず面積の大きさを決めてから家(階)を建て、車庫や庭を作る方法を定義しました。
この時、簡単な建築者モデルが完成しました。より良い説明のために、User類を新設しました。このUser類はその中の具体的な完成を知る必要がなく、ただドッキングバッグの工員が必要です。この時点で建設が開始されます。ユーザーは建築過程を知る必要がありません。コードは以下の通りです

class User():#  
  def __init__(self,size,floor,garage,courtyard):
    self.frm=Foreman()
    self.frm.build(size,floor,garage,courtyard)
完全コードは以下の通りです。

class House:#    
  def __init__(self):
    self.size=0
    self.floor=0
    self.garage=0
    self.courtyard=0
  def __str__(self):
    houseInfo='     '+str(self.size)+'  ,'+str(self.floor)+'  ,'+str(self.garage)+'   '+str(self.courtyard)+'   '
    return houseInfo
    
class HouseBuilder:#      
  def __init__(self):
    self.house=House()
  def buildGarage(self,amount):
    self.house.garage=amount
    print(self.house)
  def buildFloor(self,amount):
    self.house.floor=amount
    print(self.house)
  def buildSize(self,amount):
    self.house.size=amount
    print(self.house)
  def buildCourtyard(self,amount):
    self.house.courtyard=amount
    print(self.house)

class Foreman:#  
  def __init__(self):
    self.builder=HouseBuilder()
  def build(self,size,floor,garage,courtyard):#    
    self.builder.buildSize(size)
    self.builder.buildFloor(floor)
    self.builder.buildGarage(garage)
    self.builder.buildCourtyard(courtyard)

class User():#  
  def __init__(self,size,floor,garage,courtyard):
    self.frm=Foreman()
    self.frm.build(size,floor,garage,courtyard)

    
xiaoming=User(500,3,2,1)
運転結果は以下の通りです。

デザインモードは一定の制限があります。具体的な使用シーンは具体的に分析しなければなりません。
ここでPythoon 3の作成者モードを実現するためのコード例についての記事を紹介します。Python 3の作成者モードに関する詳細は以前の記事を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。