认识设计模式
介绍:
设计模式是人们在长期的软件开发中的经验总结,是对某些特定问题的经过实践检验的特定解决方法,是软件设计中的“三十六计”.
作用:
1.使开发者可以更加简单方便地复用 成功的设计和体系结构
2.帮助开发者做出有利于系统复用的选择,避免损害系统复用性的设计.
3.使其他开发者更加容易理解其设计思路,便于团队交流。
设计模式之间的关系
为什么使用设计模式
由此不难想象,如果程序中比较基础的模块发生变化,将导致该模块的所有调用者都要修改代码,影响了其他模块的重用。
面向对象设计原则
设计模式的应用
简单工厂模式
简单工厂+依赖倒置原则
简单工厂模式+参数
示例:
定义发负责创建NewsDao示例的工厂类。
//简单工厂模式
public class SimplDaoFactory {
//创建NewsDao实例的工厂方法
public static NewsDao getInstance(String key){
switch (key){
case "mysql":
return new NewsDaoMySqlImpl();
case "oracle":
return new NewsDaoOracleImpl();
case "redis":
return new NewsDaoRedisImpl();
default:
throw new RuntimeException("无效的数据库类型"+key+",DAO获取失败");
}
}
}
根据依赖倒置原则,使用setter方法传递依赖关系。代码如下:
public class NewsDaoServiceImpl implements NewsDaoService {
private NewsDao dao;
public void setDao(NewsDao dao){
this.dao=dao;
}
@Override
public void addNews(News news) {
dao.save(news);
}
}
在测试方法中,通过NewsServiceImpl类的setter方法传递依赖关系
public class Test {
public static void main(String[] args) {
NewsDao dao = SimplDaoFactory.getInstance("mysql");
NewsDaoServiceImpl service = new NewsDaoServiceImpl();
service.setDao(dao);
}
}
小结