1、什麼是設計模式?
設計模式是經過總結、最佳化,對我們經常遇到的一些程式設計問題的可重用的解決方案。設計模式不同於類或庫可直接作用於程式碼。相反,它更為的高階,是一種必須在特定的情形下實現的方法模版。2、面向物件中設計模式的六大原則是什麼?
開閉原則:一個軟體實體如類、模組和函式,對擴充套件開放,對修改關閉,即一個軟體實體應該在不修改原有程式碼的基礎上進行擴充套件里氏替換原則:引用父類的地方都應該能透明的呼叫其子類的物件依賴倒置原則:高層模組不應該依賴底層模組,兩者都應該依賴其抽象類,抽象不應該依賴細節,細節依賴抽象,即針對介面程式設計,而非針對細節程式設計介面隔離原則:使用多個專門的介面,而非一個單一的總介面,即客戶端的實現不應該依賴於它無關的介面。迪米特原則:一個軟體實體應該儘可能少的和其它軟體實體相互作用單一職責原則:一個類只負責一項職責3、列舉幾個常⻅的設計模式?
建立模式:提供例項化的方法,為適合的狀況提供建立物件的方法結構化模式:通常用於處理實體之間的關係,使得不同的實體可以更好的協同工作行為模式:為不同的實體建立通訊,為不同的實體之間提供更方便、更靈活的通訊方式4、Mixin 設計模式是什麼?它的特點和優點?
為了不違背繼承必須是"is-a"的關係同時又能實現多繼承的效果,從而出現了Mixin類,這個類是為了做增強功能新增到子類中特點:責任明確:必須表示是一種功能,而非一個事物功能單一:如果有多個功能,就寫多個Mixin類絕對獨立:子類不繼承該類,也可以正常工作,只是少一個功能而已優點:不使用Mixin會有以下的幾點弊端,使用Mixin可避免
結構複雜:單繼承子類的父類是什麼,父類的父類是什麼都是非常明確的;多繼承子類有多個父類,父類又有多個父類,繼承關係複雜優先順序模糊:多繼承中多個父類如果有同名方法,在開發中,容易造成思維混亂,子類不知道繼承哪個父類,增加開發難度功能衝突:多繼承中子類只能繼承多個父類中的一個同名方法,從而導致其它父類的方法失效5、什麼是單例模式?單例模式的作用?
單例模式:在整個專案/系統中,一個類只有一個例項的存在作用:節約記憶體資源6、單例模式的應用場景有那些?
python的logger、Windows的資源管理器、執行緒池、網站計數器等7、用python實現單例模式
# 建立一個單例模式class Singleton(object): _instance = None def __new__(cls,*args,**kwargs): if not cls._instance: cls._instance = super(Singleton, cls).__new__(cls,*args,**kwargs) return cls._instanceclass MyClass(Singleton): pass#新建兩個物件m1=MyClass()m2=MyClass()#驗證兩個物件是否一致print(m1 is m2)print(id(m1), id(m2))
私信小編01即可獲取大量Python學習資料
最新評論