最近公司業務拓展需要對接網際網路醫院,針對數量繁多的醫院且每家醫院的要求各不一樣,每次新增醫院都會改動到之前的方法,增加條件判斷,導致需要測試全量回歸,迭代效率低下,為此結合軟體設計的開閉原則(擴充套件開放、修改關閉),引入設計模式對**進行優化,記錄下來。希望對剛碰到類似問題的朋友有幫助。
//查詢病歷記錄
public list
querymedicalrecord
(string hospitalcode,..
.)elseif(
"jdsd"
.equalsignorecase
(hospitalcode)
)elseif(
"dgzyy"
.equalsignorecase
(hospitalcode)).
..}
1.新增工廠類
@component
public
class
hisprocesso***ctory
void
registerprocessor
(hisprocessor processor)
}
2.新增介面類
public
inte***ce
hisprocessor
3.醫院標準對接實現類(如果有共同的功能可以放在此類中)
public
abstract
class
abstracthisprocessor
implements
hisprocessor
4.具體醫院對接實現類
@component
public
class
pxeyprocessor
extends
abstracthisprocessor
@override
public list
querymedicalrecord(.
..)@override
@postconstruct
void
init()
}
@component
public
class
jdsdprocessor
extends
abstracthisprocessor
@override
public list
querymedicalrecord(.
..)@override
@postconstruct
void
init()
}
優化後雖然類的數量上會增加,但是邏輯清晰,每次新增加乙個醫院只需要增加醫院的對接實現類,不需要進行**的修改,測試同學也不需要每次都擔心之前的邏輯被改動到。 設計模式 工廠模式 例項
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
PHP設計模式之工廠模式例項總結
使用工廠模式的目的或目標?工廠模式的最大優點在於建立物件上面,就是把建立物件的過程封裝起來,這樣隨時可以產生乙個新的物件。減少 進行複製粘帖,耦合關係重,牽一發動其他部分 通俗的說,以前建立乙個物件要使用new,現在把這個過程封裝起來了。假設不使用工廠模式 那麼很多地方呼叫類a,就會這樣子建立乙個例...
設計模式 設計模式之工廠模式
工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...