好吧,我現在需要重構一個類,並在最好的情況下使用設計模式。我想這樣做,以演示如何重構傳統代碼以服務於SOLID原則。直到現在,我所能做的只是提取方法。我有一個代碼片段就在這裏,這基本上填滿了數據的一個對象從另一個對象:重構時使用設計模式
try {
final Object response = service.getOutput(InputData);
if (response instanceof OutputData) {
final OutputData output = (OutputData) response;
data.Quantity(output.getQuote().getQuantity());
data.setDate(output.getQuote().getDate());
data.setMaterial(productData.getCode());
if (isValidCustomer(output.getQuote())) {
data.setName(output.getQuote().getName());
} else {
data.setName("");
}
if (output.getQuote().getLimit() != null) {
data.setLimit(output.getQuote().getLimit().trim());
}
}
catch (final Exception e){
//...
}
if (productPrice != null) {
data.setProductPrice(productPrice);
data.setTotalPrice(calculateTotalPrice(data, productPrice, quantity));
}
什麼是你能在這種情況下使用設計模式?問題是,該項目是基於Spring,所以它並不真正處理構造函數。正如你所看到的,已經有一些提取的方法,比如calculateTotalPrice等等。
嗯,它更多的是展示,如何使用它,以及它在理論上會帶來哪些好處。我用Factory或Builder看到的問題是,他們經常使用構造函數來創建一個Object。 – user5417542