python_オブジェクト指向の設計パターン_ _クラス

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/snailchangquan/article/details/96849802

01 ------------- -------------------クラス

クラスPerson(オブジェクト):
    年齢= 10;
    デフ__init __(自己、年齢):
        :年齢がNoneではない場合
            self.age =年齢

    デフ(自己を)話す:
        印刷(「こんにちは」)

PERSON1 =人物(30)
印刷(person1.age)

PERSON2 =人(なし)
印刷(person2.age)

- - - - - - - - - 新しい - - - - - - - - - - - - - - -

クラス・ドッグ(オブジェクト):

    デフ__new __(CLS):
        印刷( "新しい")
        の戻りオブジェクト.__新しい__(CLS)

    デフ__init __(自己):
        プリント( "INIT")

    :DEF(自己)話す
        ( "話す")印刷を

    デフ__del __(自己):
        プリント( "削除")

犬=犬()。
dog.speak()

- - - - - - - - - - - - - -スーパー - - - - - - - - - - -

クラスの魚(オブジェクト):
    デフ__init __(自己、名):
        self.name =名前

    スイムDEF(セルフ):
        印刷( "{0}水泳すぐに" .format(self.name))

    デフ__del __(自己):
        プリント( "削除")

クラス金魚(魚):
    デフ__init __(自己、名):
        スーパー(金魚、自己).__のinit __(名)

    デフ実行(自己):
        スーパー(金魚、自己).swim()

魚=金魚(「金魚」)

 

2.デザインシンプルなファクトリパターン########### ##############

#有意に異なるインタフェース、別々の実現に簡単な
クラスを支払う(オブジェクト):
    DEF __init __(自己、マネー):
        self.money =マネー

    ペイDEF(セルフ):
        印刷( "カタツムリの金融:支払額は{0}である"形式(self.money) 。)


クラスWeiXin(オブジェクト):
    デフ__init __(自己、お金):
        self.money =お金

    ペイDEF(セルフ):
        印刷(フォーマット(self.money) "支払額は{0}です" 。)


クラスZhifubao(オブジェクト):
    デフ__init __(自己、お金):
        self.money =お金

    ペイDEF(セルフ):
        印刷(フォーマット(self.money) "支払額は{0}です" 。)


チャンネル=入力( "お支払い方法を選択してください:")
マネー=フロート(INPUT( "お支払い金額を入力してください:"))
チャンネル== "Weixin" IF:
    Weixin(金).pay()
のelifチャンネルは"zhifubaoを" == :
    Zhifubao(金).pay()
他:
    ペイ(金).pay()

###################ファクトリメソッド######################

長所:を気にする必要は具象クラスを達成するために、カテゴリをインポートするために時間を使うことができる方法ではありません。

クラスペイ(オブジェクト):
    デフ__init __(自己、お金):
        self.money =お金

    ペイDEF(セルフ):
        印刷( "カタツムリの金融:支払額は{0}である"形式(self.money) 。)


クラスWeiXin(オブジェクト):
    デフ__init __(自己、お金):
        self.money =お金

    有料DEF(自己):
        プリント( "マイクロチャネル支払額は{0}"形式(self.money) )。


クラスZhifubao(オブジェクト):
    デフ__init __(自己、お金):
        self.money =お金

    ペイDEF(セルフ):
        印刷(形式(self.money) "Alipayの支払額は、{0}です" 。)


クラスPayFactory(オブジェクト):
    デフ(自己、お金)を作成:
        リターン・ペイ(金)


クラスWeiXinFactory(オブジェクト):
    デフを作成(自己、お金):
        リターンWeiXin(金)


クラスZhifubaoFactory(オブジェクト):
    デフ(自己、お金)を作成します。
        Zhifubao(お金を)返します

------

方法インポートPayFactory
工場= PayFactory()
支払う= factory.create(100)
pay.pay()

以下からのメソッドのインポートWeiXinFactory
工場= WeiXinFactory()
支払う= factory.create(1000)
pay.pay()


メソッドのインポートZhifubaoFactoryから
工場= ZhifubaoFactory()
支払う= factory.create(10000)
)pay.pay(

------反射抽象ファクトリー

モデル=入力(「モジュール名を入力してください」)
INPUTを持つクラスクラスA =(「クラス名を入力してください」)
お金はINPUTを=(「金額を入力してください。」)

モデル= __import __(モデル)
オブジェクト= GETATTR(モデル、クラスA)(金)
プリント(DIR(モデル))
プリント(オブジェクト)
object.pay()

============== ==============シングルトン

クラスSingleTone(オブジェクト):
    デフ__new __(CLS、* argsを、**キロワット):
        (CLS、 '_INSTANCE')はhasattrない場合:
            cls._instance =スーパー(SingleTone、CLS)を.__新しい__(CLS)
        リターンcls._instance

single1 = SingleTone()
single2 = SingleTone()
プリント(ID(single1))
プリント(ID(single2))

おすすめ

転載: blog.csdn.net/snailchangquan/article/details/96849802