面向接口编程和工厂模式

UserDao---User类的数据库连接接口
//MySQL Oracle,User类有MySQL和Oracle两种数据库连接方式可以实现
CategoryDao---CategoryDao类的数据库连接接口
//MySQL Oracle
UsermysqlDao implements UserDao,UseroracleDao implements UserDao , UsermysqlDao 和UseroracleDao 是用户类连接不同数据库的实现类;

A.需要完成的功能:
若原来 User类使用Mysql数据库存储数据,当系统想要从原来使用Mysql数据库转移至Oracle数据库时,面向接口编程可以实现一种“添加而不是修改”的代码设计思想,可以将数据库连接方式定义成为一个接口,当要使用Mysql数据库时,通过:
UserDao example = new UsermysqlDao();
example.add();
example.delete();来使用。
当要使用Oracle数据库时,只需要定义一个UseroracleDao类实现UserDao接口即可添加Oracle数据库支持,原代码只需要改成:
UserDao example = new CategorymysqlDao();
example.add();
example.delete();即可。

B学习的两种工厂模式:
1.
Class DaoFactory{
UserDao getUserDao(){根据情况return UsermysqlDao 或者 UseroracleDao}
CategoryDao getCategoryDao(){根据情况return CategorymysqlDao 或者 CategoryoracleDao}
}

abstract DaoFactory 或 interface DaoFactory{
UserDao getUserDao();
CategoryDao getCategoryDao();
}

Class MySqlDaoFactory implements DaoFactory{
UserDao getUserDao(){return UsermysqlDao}
CategoryDao getCategoryDao(){return CategorymysqlDao}
}

原文地址:https://www.cnblogs.com/akiradunn/p/5851576.html