耦合性(Coupling),也叫耦合度,它是对模块间关联程度的度量。
在软件工程中,耦合指的就是对象之间的依赖关系。对象之间的耦合越高,则表明模块的独立性和可复用性越差,且维护成本越高。因此对象的设计应使类和构件之间的耦合最小。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。
class UserService{
//UserDao userDao = new UserDaoImpl();
UserDao userDao = BeanFactory.getBean("UserDao");
}
我们在前面课程学习中,接触到最明显的一个因程序耦合而不得不改变的技术点就是JDBC操作的注册驱动:
/**
* 程序的耦合演示
*/
public class JdbcDemo {
/**
* JDBC操作
*/
public static void main(String[] args) throws Exception{
//1.注册驱动
//此处我们的代码中依赖了mysql的具体驱动实现,而实际开发中,当我们要更改数据库实现,就需要修改此处的源代码。
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//2.获取连接
//3.获取预处理对象
//4.执行sql语句
//5.处理结果集
//6.释放资源
}
}
/**
* 用户业务层接口
*/
public interface UserService {
/**
* 模拟保存用户
*/
void save();
}
/**
* 用户业务层实现类
*/
public class UserServiceImpl implements UserService {
/* 在我们使用三层架构作为开发基础时,层和层之间的调用,如果使用具体实现类就会出现内容依赖。
* 在需要更换实现时,就需要修改源码,造成当前业务层功能的独立性很差。同时给我们维护带来极大不便。
*/
private UserDao userDao = new UserDaoImplForOracle();
//private UserDao userDao = new UserDaoImplForMySQL();
@Override
public void save() {
userDao.save();
}
}
/**
* 用户的持久层接口
*/
public interface UserDao {
/**
* 模拟保存用户
*/
void save();
}
/**
* 用户的持久层实现类
*/
public class UserDaoImplForMySQL implements UserDao {
@Override
public void save() {
System.out.println("执行了保存用户 for MySQL");
}
}
/**
* 用户的持久层实现类
*/
public class UserDaoImplForOracle implements UserDao {
@Override
public void save() {
System.out.println("执行了保存用户 for Oracle");
}
}
本文地址:https://blog.csdn.net/weixin_47785112/article/details/107383973
如对本文有疑问, 点击进行留言回复!!
VideoStudio多相机编辑器怎么用? VideoStudio多相机的使用方法
网友评论