python---重点(设计模式)
前戲:設(shè)計(jì)模式簡(jiǎn)介
設(shè)計(jì)模式是面向?qū)ο笤O(shè)計(jì)的解決方案,是復(fù)用性程序設(shè)計(jì)的經(jīng)驗(yàn)總結(jié)。(與語(yǔ)言無(wú)關(guān),任何語(yǔ)言都可以實(shí)現(xiàn)設(shè)計(jì)模式)
設(shè)計(jì)模式根據(jù)使用目的的不同而分為創(chuàng)建型模式(Creational Pattern),結(jié)構(gòu)性模式(Structural Pattern)和行為型模式(Behavioral Pattern)
創(chuàng)建型模式:提出來(lái)對(duì)象創(chuàng)建的解決方案以及數(shù)據(jù)封裝的方法。降低了創(chuàng)建對(duì)象時(shí)代碼實(shí)現(xiàn)的復(fù)雜度,是對(duì)象的創(chuàng)建時(shí)能夠滿足特定的要求。例如工程模式,抽象工廠模式,單例模式,生成器模式
結(jié)構(gòu)型模式:描述了對(duì)象之間的體系結(jié)構(gòu),通過(guò)組合,繼承等方式改善體系結(jié)構(gòu),降低體系結(jié)構(gòu)中的組件依賴性。例如,適配器模式。橋模式,組合模式,裝飾器模式,外觀模式等。
行為模式:描述了對(duì)象之間的交互和各自的職責(zé),有助于實(shí)現(xiàn)程序中對(duì)象的通訊和流程的控制。例如:迭代器模式,解釋器模式,中介者模式,觀察者模式等。
使用python同樣可以實(shí)現(xiàn)各種設(shè)計(jì)模式,而且實(shí)現(xiàn)過(guò)程比較簡(jiǎn)單。
一:工廠模式
在工廠方法模式中,工廠方法用于創(chuàng)建產(chǎn)品。并隱藏了產(chǎn)品對(duì)象實(shí)例化的過(guò)程。過(guò)程方法根據(jù)不同的參數(shù)生成不同的對(duì)象。因此客戶程序只需要知道工廠類和產(chǎn)品的父類,并不需要知道產(chǎn)品的創(chuàng)建過(guò)程以及返回產(chǎn)品的類型。
例如:定義Factory類創(chuàng)建不同的Fruit對(duì)象,Apple類和Banana類繼承自Fruit類。那么這兩個(gè)類(Apple和和Banana類就是我們需要去生成的產(chǎn)品)
實(shí)現(xiàn)工廠方法(簡(jiǎn)單版本)
class Factory:def createFruit(self,fruit):if fruit == "apple":return Apple()elif fruit == "banana":return Banana()class Fruit:def __str__(self):return "fruit"class Apple(Fruit):def __str__(self):return "apple"class Banana(Fruit):def __str__(self):return "banana"if __name__ == "__main__":factory = Factory()a = factory.createFruit("apple")b = factory.createFruit("banana")print(a,b) #apple banana簡(jiǎn)單實(shí)現(xiàn),并不完美,后面補(bǔ)上
轉(zhuǎn)載于:https://www.cnblogs.com/ssyfj/p/8970114.html
總結(jié)
以上是生活随笔為你收集整理的python---重点(设计模式)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Highcharts 配置选项详细说明
- 下一篇: K3Cloud云星空插件开发实战教程(全