一、介面
public inte***ce dothing
二、列舉類
public enum enumthing implements dothing
},role1
},role2
}}
三、呼叫
enumthing.valueof("admin").dothing();
工廠模式解決if-else「分支過多」問題
不同分支做不同的事情,很明顯就提供了使用工廠模式的契機,我們只需要將不同情況單獨定義好,然後去工廠類裡面聚合即可。
首先,針對不同的角色,可以單獨定義其業務類:
//系統管理員(有a操作許可權)
public
class
rootadminrole
implements
role0peration
@override
public
string op()
}
//訂單管理員(有b操作許可權)
public
class
orderadminrole
implements
roleoperation
@override
public
string op()
}
//普通使用者(有c操作許可權)
public
class
normalrole
implements
roleoperation
@override
public
string op()
}
接下來再寫乙個工廠類rolefactory
對上面不同角色進行聚合:
public
class
rolefactory
pub1ic
static
roleoperation getop( string rolename )
}
接下來借助上面這個工廠,業務**呼叫也只需一行**, if/else同樣被消除了:
public
class
judgerole
}
這樣的話以後想擴充套件條件也很容易,只需要增加新**,而不需要動以前的業務**,非常符合「開閉原則」。
單例模式 多例模式 列舉 工廠模式
1.單例設計模式作用讓乙個類,最最最最多只能有乙個物件2.單例設計模式實現步驟a.構造方法私有化 b.我們要在類內部,建立乙個靜態的該類物件 c.我們要提供乙個靜態方法,使用者可以通過靜態方法獲取剛剛我們準備的那個物件3 單例設計模式的型別a.餓漢式單例 編寫靜態物件時,直接通過new 類名 賦值b...
靜態工廠模式 工廠模式 抽象工廠模式 解決的問題
提前總結 工廠模式的主要作用是封裝變化,把經常變化的地方封裝成乙個類。這樣可以避免重複,方便維護。使客戶 和實現 解耦,客戶在例項化物件時,依賴於介面,而不是具體的實現類。問題的引出 假如你有一家披薩店,你只會做一種披薩 public class pizzastore 後來你學會做多種披薩可供選擇,...
簡單工廠模式和工廠模式
在對比兩種模式之前,首先需要學習 開放 封閉原則。在以前學習的過程中,聽說過很多次,編寫程式要遵循開閉原則。在做專案的過程中,因為需求的新增,經常會更新軟體。更新軟體,就要設計到修改 了。在物件導向的程式設計中,經常會寫類。如果因為新增需求,去修改已經完成的類。那麼他是不符合開閉原則的。新增需求,應...