知識を展開

スプレッド

 

 

ファクトリパターン

第二の方法の制約は - 抽象クラスを定義します

再開CMDB概要

 

 

 

ファクトリパターン

  • シンプルモード

    定義:ファクトリクラスがインタフェースを提供し、クライアント渡されたパラメータに基づいて、オブジェクトの対応するインスタンスを作成します。(オブジェクトを作成します)
    、彼らは知っている:あなたが望むデータを取得することができ、変更get_flower方法FlowerSimpleFactoryクラスの着信クラスにのみ必要性を、 ***データが直接のサブクラスであります
    ABC 輸入ABCMeta、abstractmethod 
     
     
    クラスフラワー(メタクラス= ABCMeta):
     @abstractmethod 
     デフshow_price(自己):
       パス・
     
     
    クラス・ローズ(花):
      デフshow_price(自己):
       プリント' ローズ価格:$ 59 ' 
     
     
    クラスチューリップ(花):
      デフshow_price(自己):
       プリント' チューリップ価格:$ 66 ' 
     
     
    クラスFlowerSimpleFactory:
      デフget_flower(自己、flower_type):
       リターンflower_type()
     
     
    の場合 __name__== ' __main__ ' 
     flower_factory = FlowerSimpleFactory()
     ローズ = flower_factory.get_flower(' ローズ' 
     チューリップ = flower_factory.get_flower(' チューリップ' 
     rose.show_price()
     tulip.show_price()
     
  • ファクトリメソッドパターン

    定義:基本クラスを定義する必要があり、別のサブクラスは、異なるタイプのオブジェクトを表します。シンプルな工場、より多くのカスタマイズを持つファクトリメソッドに対するパターン。(オブジェクトを作成します)
     自分の理解を:私は、異なる結果を得るために、コードFlowerShop1とFlowerShop2クラスメソッドを変更する必要があるサブクラスが決定****
    ABC 輸入ABCMeta、abstractmethod 
     
     
    クラスフラワー(メタクラス= ABCMeta):
     @abstractmethod 
     デフshow_price(自己):
       パス・
     
     
    クラス・ローズ(花):
      デフshow_price(自己):
       プリント' ローズ価格:$ 59 ' 
     
     
    クラスチューリップ(花):
      デフshow_price(自己):
       プリント' チューリップ価格:$ 66 ' 
     
     
    クラスリリー(花):
      デフshow_price(自己):
       プリント' リリー価格:$ 33 ' 
     
     
    クラス FlowerShopFactoryは(メタクラス= ABCMeta):
      DEFは __init__ (自己):
      self.flowers = [] 
      self.stock_flowers()は
     
     @abstractmethod 
     DEF :stock_flowers(自己)が
       通過
     
     DEF get_flowers(自己):
       戻りself.flowers 
     
     DEF add_flowerを(自己、花):
      self.flowers.append(花)
     
     
    クラスFlowerShop1(FlowerShopFactory):
      デフstock_flowers(自己):
      self.add_flower(ローズ())
      self.add_flower(チューリップ())
     
     
    クラスFlowerShop2(FlowerShopFactory):
      デフ stock_flowers(自己):
      self.add_flower(ローズ())
      self.add_flower(チューリップ())
      self.add_flower(リリー())
     
     
    の場合 __name__ == ' __main__ ' 
     flower_shop1 = FlowerShop1()
      のためのflower_shop1.get_flowers():
      flower.show_price( )
     
     flower_shop2 = FlowerShop2()
      のためのflower_shop2.get_flowers():
      flower.show_price()
    
    
    ローズ価格:$ 99 
    チューリップの価格:$ 66 
    ローズ価格:$ 99 
    チューリップの価格:$ 66 
    リリーの価格:$ 33
     
  • Abstract Factoryパターン

    定義:抽象ファクトリクラスを定義し、その後、別のサブクラス、オブジェクトのグループを表し、一連のオブジェクトの異なるセットを作成する必要があります。(オブジェクトのグループを作成します)
     あなたが理解:より多くの抽象クラスのメソッドを関数を継承することができます定義されたサブクラスがもっとできるよう、 ****親達成サブクラス
    ABCのインポートABCMeta、abstractmethod 
     
     
    クラスミニカー(メタクラス= ABCMeta):
     @abstractmethod 
     DEF show_size(自己):
       パス・クラス SedanCar(メタクラス= ABCMeta):
     @abstractmethod DEF show_price(自己):
       パス国产车クラスDomesticMiniCar(ミニカー):
      DEF show_size(自己):
       プリント' 国産軽自動車サイズ:111 ' クラスDomesticSedanCar(SedanCar):
      デフshow_price(自己):
       印刷"
     
     
    
     
     
     
    
    
     
     
    国産セダン車の価格:10W ' 
     
     
    英国车
    クラスEnglishMiniCar(ミニカー):
      デフshow_size(自己):
       プリント' 英語ミニ車のサイズ:222 ' 
       
     
    クラスEnglishSedanCar(SedanCar):
      デフshow_price(自己):
       プリント' 英語セダン車の価格:30ワット" 
     
     
    抽象工厂类
    クラス CarFactory(メタクラス= ABCMeta):
     @abstractmethod 
     デフcreate_mini_car(自己):
       渡す
     
     @abstractmethod 
     デフcreate_sedan_car(自己):
       パス
     
     
    国产车工厂类
    クラスDomesticCarFactory(CarFactory):
      デフcreate_mini_car(自己):
       リターンDomesticMiniCar()
      
     デフcreate_sedan_car(自己):
       リターンDomesticSedanCar() 
     
     
    英国车
    クラスEnglishCarFactory(CarFactory):
      デフcreate_mini_car(自己):
       リターンEnglishMiniCar()
      
     デフcreate_sedan_car(自己):
       リターン EnglishSedanCar()

     

第二の方法の制約は - 抽象クラスを定義します

インポートABC 

抽象
クラスベース(=メタクラスそのabc.ABCMeta): 
    
    抽象メソッド
    @ abc.abstractmethod
     DEFのプロセス(自己):
         パス
クラスはFoo(塩基):
     パス
はFoo()

 

再開CMDB概要

  • プロジェクト名

    CMDB /資産管理システム/サーバ構成管理システム/運用・保守の自動化プラットフォーム
  • 項目説明

    資産維持費のために会社が高く、彼らが実際に共有実現内のSambaサービス、Excelを内蔵しているため、データの精度は、下の方になっているためCMDBは、資産情報サーバの自動収集のためのプロジェクトです。CMDBは、人件費を削減するため、作業効率を向上させ、プロジェクト資産取得機能によって改善することができ、プロジェクトが制御機械/安らかなAPI /資産管理および制御プラットフォームの主要な取得を実現しました。5 
     取得制御ユニット用のような複数の動作モードをサポートすることができる:saltstack / ansible / paramikoデフォルトを、工場モードスケーラビリティインサートを使用して開発中に開閉の原理に従います。
     APIの場合、それは反射によって変更レコードと資産を持続の達成を含め、安らかな厳格な規範に従うとDjango残りのフレームワークフレームワークの実装を使用し、資産を処理することです。
     資産管理および制御プラットフォームは、主に運用・保守レポートのセクションと監督のためのデータやサポートを提供し、一括インポートとエクスポートのサポートが優れ、明確タイムラインの使用をサポートしhighchartsレポートを実装して示すデータに基づいて、サーバーのライフサイクルを示しています。
  • 技術のポイント(項目機能/私の義務)

    • 異なる事業開発のために、資産の拡張リモート収集を達成paramiko / ansible / saltstack使用しています。

    • 基準ソースミドルウェアは、プラントモデル、プラグイン可能な先進資産取得プラグと共に実施します。

    • プロジェクトの厳しさ、拘束スロープラグインアクティブの使用のためのプロジェクトを考えます。

      - 他の制約はありませんか?
           抽象クラスによってABCの実装上の制約と抽象メソッドを実装します。
       - なぜあなたはABCではないのですか?しかし、例外?
           ABCより多くのトラブルを操作し、それも達成することができます。
           私はそれがより簡潔ないくつかをスローされますと、私はいくつかのソースを参照したと思う、彼らはまた、内部異常が達成されています。
       インポートABC 
       抽象
       クラスベース(=メタクラスそのabc.ABCMeta): 
           
           抽象メソッド
           @ abc.abstractmethod
            DEFのプロセス(自己):
                パス
       クラスはFoo(塩基):
            パス
       はFoo()
    • ビルトイン認証コンポーネントカスタマイズおよび拡張DRF、ユーザ認証を介し。

    • 安らかなAPIで、API /バージョン/認証機能を実現します。

    • 内部バッチエクスポートサーバーの資産のほとんどの輸入のサポートは、唯一のxlrd / xlwtモジュールで動作します。

    • 会社の資産の事業ラインに基づいて、サーバープロセスデータのレポートを行います。

    • RBACは、権限に基づいてパリティ情報を得ます。

トップへ戻ります

おすすめ

転載: www.cnblogs.com/NiceSnake/p/11918988.html