目录
一、静态工厂模式解耦
原理: 就是创建一个类 ,里面写静态方法,用来创建对象。
二、源代码
(1)持久层实现类
package com.by.dao.impl;
import com.by.dao.UserDao;
/**
* 持久层实现类
*/
public class UserDaoImpl implements UserDao {
@Override
public void add() {
System.out.println("userDao...add....");
}
}
(2)业务层实现类
package com.by.service.impl;
import com.by.dao.UserDao;
import com.by.dao.impl.UserDaoImpl;
import com.by.factory.BeanFactory_v1;
import com.by.service.UserService;
/**
* 业务层实现类
*/
public class UserServiceImpl implements UserService {
// 1.硬编码 此处有依赖关系
// UserDao userDao=new UserDaoImpl();
@Override
public void addUer() {
// 2.使用静态工厂创建的对象
UserDaoImpl userDao = BeanFactory_v1.getUserDao();
userDao.add();
}
}
(3)模拟表现层
package com.by.web;
import com.by.factory.BeanFactory_v1;
import com.by.service.UserService;
import com.by.service.impl.UserServiceImpl;
/**
* 模拟表现层
*/
public class Client {
public static void main(String[] args) {
// 1.硬编码 使用new 的方法创建对象
//UserService userService=new UserServiceImpl();
// 2. 使用静态工厂的方法进行创建对象
UserService userService = BeanFactory_v1.getUserService();
userService.addUer();
}
}
三、运行结果
- 问题:我们在开发中会有很多个service和dao,此时工厂类就要添加无数个方法。