太多的if else ,**可讀性太差,需要重構易於後期維護。
工廠類:
/**
* @author shou
* @title: 工廠類
* @date 2020/4/229:48
*/public
class
strategyfactory*/}
//內部類
public
static
class
holder
//返回的是單例的工程物件
public
static strategyfactory getinstance()
public strategy get
(integer type)
}
**使用者:
/**
* @author shou
* @title: $
* @package $
* @description: $
* @date 2020/4/229:47
*/public
class
goldstrategy
implements
strategy
@override
public int gettype()
}
**使用者:
/**
* @author shou
* @title: $
* @package $
* @description: $
* @date 2020/4/229:42
*/public
class
silverstrategy
implements
strategy
@override
public int gettype()
}
重構後**:
/**
* @author shou
* @title: $
* @package $
* @description: $
* @date 2020/4/2210:04
*/public
class
getresult
strategy strategy= strategyfactory.
getinstance()
.get
(type);if
(strategy==
null
)return strategy.
compute
(money);}
}
策略模式 工廠模式優化if else
2.優化if else 思路描述 構建支付型別業務處理介面,不同的支付型別實現該介面並重寫介面方法實現支付型別的具體處理邏輯 構建支付型別工廠,根據對應支付型別獲取支付型別業務處理介面實現類.2.1構建支付型別介面 public inte ce paytypehandleservice2.2 根據不...
為什麼使用工廠模式
非原創,只是搬運。位址 1.工廠模式並不僅僅是用來new出乙個類的物件的。簡單工廠確實如題主的描述所說,是乙個工廠對應乙個類的關係。假設有 包a和 包b,包b是 包a的呼叫者,a向b暴露介面inte cea。在a的內部結構中,實現了inte cea的有classa1,classa2,classa3,...
使用工廠設計模式的場景
建立類物件雖然可以使用new 底層也是通過反射建立物件的 但是在一些情況下使用工廠模式確實最合適的。情況一 如果乙個物件擁有很多子類,那麼建立該物件的子類使用工廠模式是最合適的,不但可以面向介面的程式設計,為維護以及開發帶來方便。情況二 如果建立某個物件時需要進行許多額外的操作,如查詢資料庫然後將查...