面向對象的編程,並非類越多越好,類的劃分是爲了封裝,但分類的基礎是抽象,具備相同屬性和功能的對象的抽象集合纔是類。算法
策略模式:定義了算法,分別封裝,讓它們之間能夠互相替換,此模式讓算法的變化,不會影響到使用算法的客戶。
策略模式是一種定義一系列算法的方法,從概念上看,全部這些算法完成的都是相同的工做,只是實現不一樣,他能夠以相同的方式調用全部的算法,減小了各類算法類與使用算法類之間的耦合。
策略模式中普通算法的策略類爲環境定義了一系列可供重用的算法或行爲。繼承有助於析出出這些算法中的公共功能。
策略模式簡化了單元測試,每一個算法都有本身的類,能夠經過本身的接口單獨測試。
當不一樣的行爲堆砌在一個類中時,就很難避免使用條件語句來選擇合適的行爲。將這些行爲封裝在一個個獨立的策略類中,能夠在使用這些行爲的類中消除條件語句。
策略模式用來封裝算法,一樣能夠封裝幾乎任何類型的規則,只要在分析過程當中,須要不一樣時間執行不一樣的運行方式,就能夠考慮使用策略模式。
基本的策略模式中,選擇怎麼具體實現由客戶端對象選擇,並轉給策略模式的策略對象。
任何需求的變動都須要成本。
閱讀心得與反思:
UGUI 能夠單獨用一個空物體存放不一樣的腳本,腳本中有不一樣的方法,好比所有按鈕能夠調用其中一個腳本的方法,或者負責刪除按鈕的調用一個腳本中的方法,負責增長的調用一個腳本中的方法。
單獨實現算法以前,僅須要知道執行了什麼類型的算法。而繼承的父策略對象存儲了算法的公共因素。客戶端只須要傳遞參數和執行方式進入服務器端的就能夠。客戶端與服務器端耦合度極小。