軟體設計的一般原則:
1.開閉原則
對擴充套件開放,對修改關閉
2.黎克特制代換原則
在任何基類出現的地方,子類一定可以出現
3.依賴倒轉原則
依賴於抽象,不依賴於實現
4.介面隔離原則
應當為客戶提供盡可能小的單獨的介面而不是大的總介面
5.組合,聚合復用原則
盡量使用組合聚合而不是使用繼承達到**復用
6.迪公尺特法則
乙個軟體實體應盡可能小的與其他實體發生作用
工廠模式:
簡單工廠模式:
package com.westos.todo.service;
public inte***ce todoservice
package com.westos.todo.service.impl;
import com.westos.todo.service.todoservice;
public class todoserviceimpl implements todoservice
}
package com.westos.todo.factory;
import com.westos.todo.service.todoservice;
import com.westos.todo.service.impl.todoserviceimpl;
public class todosfactory
}
package com.westos.todo.test;
import com.westos.todo.factory.todosfactory;
import com.westos.todo.service.todoservice;
public class test1
}
測試結果:這是todoserviceimpl
工廠方法模式:
package com.westos.todo.service;
public inte***ce todoservice
package com.westos.todo.service.impl;
import com.westos.todo.service.todoservice;
public class todoserviceimpl implements todoservice
}
package com.westos.todo.factory;
public inte***ce abstractfactorya
package com.westos.todo.factory;
import com.westos.todo.service.todoservice;
import com.westos.todo.service.impl.todoserviceimpl;
public class todosfactorya implements abstractfactorya
}
package com.westos.todo.test;
import com.westos.todo.factory.todosfactorya;
import com.westos.todo.service.todoservice;
public class test2
}
測試結果:這是todoserviceimpl
抽象工廠模式:
package com.westos.todo.service;
public inte***ce userservice
package com.westos.todo.service;
public inte***ce todoservice
package com.westos.todo.factory;
import com.westos.todo.service.todoservice;
import com.westos.todo.service.userservice;
public inte***ce abstractfactoryb
package com.westos.moshi.factory;
import com.westos.moshi.service.todoservice;
import com.westos.moshi.service.userservice;
import com.westos.moshi.service.impl.todoserviceoracleimpl;
import com.westos.moshi.service.impl.userserviceoracleimpl;
public class abstractbfactoryoracleimpl implements abstractorybfactory
@override
public todoservice createtodoservice()
}
package com.westos.todo.service.impl;
import com.westos.todo.service.todoservice;
public class todoservicemysqlimpl implements todoservice
}
package com.westos.todo.service.impl;
import com.westos.todo.service.userservice;
public class userservicemysqlimpl implements userservice
}
package com.westos.todo.test;
import com.westos.todo.factory.abstractfactorymysqlimpl;
import com.westos.todo.service.todoservice;
import com.westos.todo.service.userservice;
public class test3
}
測試結果:todoservice的mysql方法
userservice的mysql方法
j2ee常用設計模式之工廠模式
今天花了很多時間把工廠模式又整理了一下,發現以前都沒怎麼弄懂。工廠模式分為3種 簡單工廠模式,工廠方法模式和抽象工廠模式。1.簡單工廠模式 其實這個概念我還真沒怎麼看懂,難道是我的智商有問題?既然概念沒看懂就不說了,說說我知道的吧。簡單工廠模式由三部分組成 工廠,抽象產品,具體產品。剛才看見別人寫的...
J2EE設計模式分析與實踐 引言
簡單地說,模式是乙個出現在世界上的實物,同時也是一條規則,告訴你應該如何建立乙個實物 應該在何時建立。它既是過程,也是實物 既是對當前實物的描述,也是對建立實物的過程的描述。建築的永恆之道 在軟體科學中,隨著理論的發展,模式被細分為好多種,有軟體的管理模式,實踐證明與傳統管理是有區別的,從而是一種新...
J2EE設計模式讀書筆記(1) 表現層模式
表現層模式 裝飾器 動態新增功能到前端控制器,filter 前端控制器 建立乙個統一的集中的元件來執行公共的功能 截獲所有請求,struts mvc 將表達層分解為自包含的可重用的幾個部分,struts 復合檢視 根據幾個可重用的子檢視建立乙個試圖,tiles 服務工作者 將導航功能從前端控制器中解...