前幾天看了面試,面試官問道我會什麼設計模式,當時就聽說了幾種設計模式,比如說「單利模式」、「工廠模式」、「裝飾著模式」、「**模式 」等簡單的幾種設計模式。具體每種設計模式的形式和應用是一竅不通,更別說怎麼應用啦。
下面我就我看完之後發表一下自己的愚見:
1、簡單工廠模:
例子:簡單計算器(其中忽略了set和get 方法)
抽象演算法類:
abstract class arithmetic()
具體演算法類:
加法:public class addarithmetic()
}減法:
public class subtractarithmetic()
}其他演算法:
... ...
工廠類:
public class arithmeticstory()
arithmetic.setnum1(this.num1);
arithmetic.setnum2(this.num2);
return arithmetic.operation();
} }
客戶端:
public class client ()
}客戶端輸出:15 和2
優缺點優點
工廠類是整個模式的關鍵.包含了必要的邏輯判斷,根據外界給定的資訊,決定究竟應該建立哪個具體類的物件.通過使用工廠類,外界可以從直接建立具體產品物件的尷尬局面擺脫出來,僅僅需要負責"消費"物件就可以了。而不必管這些物件究竟如何建立及如何組織的.明確了各自的職責和權利,有利於整個軟體體系結構的優化。
缺點由於工廠類集中了所有例項的建立邏輯,違反了高內聚責任分配原則,將全部建立邏輯集中到了乙個工廠類中;它所能建立的類只能是事先考慮到的,如果需要新增新的類,則就需要改變工廠類了。
當系統中的具體產品類不斷增多時候,可能會出現要求工廠類根據不同條件建立不同例項的需求.這種對條件的判斷和對具體產品型別的判斷交錯在一起,很難避免模組功能的蔓延,對系統的維護和擴充套件非常不利;
這些缺點在工廠方法模式中得到了一定的克服
工廠設計模式一 簡單工廠模式
工廠設計模式實現了建立者和呼叫者的分離。類別 1.簡單工廠模式 2.工廠方法模式 3.抽象工廠模式 遵循的設計原則 1.ocp 開閉原則,open closed principle 乙個軟體的實體應當那個對擴充套件開放,對修改關閉 2.dip 依賴倒置原則,dependence inversion ...
工廠設計模式(一) 簡單工廠模式
工廠設計模式可分為 簡單工廠模式 工廠方法模式 抽象工廠模式 第一篇我們來聊聊 理解 假設某些例項具有相同的方法,可以根據引數的不同返回不同的例項,被建立的例項通常都具有共同的父類,那麼可以考慮使用簡單設計模式來實現。例如可以實用簡單工廠模式設計乙個可以建立不同幾何形狀 如圓形 方形和三角形等 的繪...
設計模式 一 工廠模式 簡單工廠
以前總覺得設計模式純屬扯淡,浪費精力,10 能搞定的事情非要寫那麼多的介面或者實現類.為什麼要用設計模式,開發有乙個重要的原則 對修改關閉,對擴充套件開放.因為如果把 全部都雜糅到乙個類中,第一 復用性太差,擴充套件性不強.第二,修改起來一改巨改,改動即意味著要增加測試人員工作量,且引入修改bug如...