抽象工厂方法

  1. 创建user Role Product类
public class User {
    private String name;
    private String pwd;

    public String getName() {
        return name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}
public class Role {
    private String name;
    private String pwd;

    public String getName() {
        return name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}
public class Product {
    private String name;
    private String pwd;

    public String getName() {
        return name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
}
  1. 创建操作抽象类Dao
public interface IRoleDao {
    void add(Role role);
    void remove(Role role);
    Role getUser(String  role);
}
  1. 创建Dao的具体实现类
public class MySqlRoleDao implements IRoleDao {
    @Override
    public void add(Role role) {

    }

    @Override
    public void remove(Role role) {

    }

    @Override
    public Role getUser(String name) {
        Role role=new Role();
        role.setName(name);
        return role;
    }
}
public class SqlServiceRoleDao implements IRoleDao {
    @Override
    public void add(Role role) {

    }

    @Override
    public void remove(Role role) {

    }

    @Override
    public Role getUser(String name) {
        Role role=new Role();
        role.setName(name);
        return role;
    }
}
  1. 创建一个抽象的工厂方法
public interface IDaoFactory {
    IUserDao createUserDao();
    IRoleDao createRoleDao();
    IProductDao createProductDao();
}
  1. 创建工厂方法的具体实现类
public class MySqlDaoFactory implements IDaoFactory {
    @Override
    public IUserDao createUserDao() {
        return new MySqlUserDao();
    }

    @Override
    public IRoleDao createRoleDao() {
        return new MySqlRoleDao();
    }

    @Override
    public IProductDao createProductDao() {
        return new MySqlProductDao();
    }
}
public class SqlServiceDaoFactory implements IDaoFactory {
    @Override
    public IUserDao createUserDao() {
        return new SqlServiceUserDao();
    }

    @Override
    public IRoleDao createRoleDao() {
        return new SqlServiceRoleDao();
    }

    @Override
    public IProductDao createProductDao() {
        return new SqlServiceProductDao();
    }
}
  1. 客户端调用
IRoleDao roleDao = new SqlServiceDaoFactory().createRoleDao();
Role role = roleDao.getUser("抽象工厂方法");
tv_text.setText(role.getName());
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容