首页 > 代码库 > 设计模式之简单工厂模式

设计模式之简单工厂模式

简单工厂模式

提供一个创建对象实例的功能,不需要关心其具体实现,被创建实例的类型可以是接口,抽象类、也可以是具体类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。就拿创建用户来说来说,假如应用系统需要创建普通用户(需要在普通用户表中创建)与接口用户(需要在接口用户表中创建用户)那么自然的做法就是建立一个各种创建用户都适用的接口,如下图所示:

 技术分享

1.创建一个接口

public interface IUser {
    //添加用户
    boolean addUser(long id,String name);
}

2.创建两个类都实现IUser

public class NormalUser implements IUser {

    @Override
    public boolean addUser(long id, String name) {
        // TODO Auto-generated method stub
        //普通用户业务逻辑
        return true;
    }
}
public class InterfaceUser implements IUser {

    @Override
    public boolean addUser(long id, String name) {
        // TODO Auto-generated method stub
        //接口用户业务逻辑
        return false;
    }

}

3.我们还需要一个工厂类UserManger ,根据调用者不同的要求,创建出不同的用户对象并返回。而如果碰到不合法的要求,会返回一个null

public class UserManger {
    public static IUser UserCreateFactory(String type){
        if("NormalUser".equals(type)){
            return new NormalUser();
        }else if("InterfaceUser".equals(type)){
            return new InterfaceUser();
        }else{
            System.out.println("请输入正确的类型");
            return null;
        }
    }
}

4.最后我们创建测试类进行测试

public class Test {
    public static void main(String[] args) {
        String type = "NormalUser";
        long id =10000L;
        String name = "逗你玩";
        IUser user = UserManger.UserCreateFactory(type);
        boolean f = user.addUser(id, name);
        System.out.println(f);
    }
}

5.总结

理解简单工厂:

简单内部工厂重要的功能是通过“选择合适的实现类”来创建实例对象。

简单工厂的优缺点:

帮助封装

解耦

增加客户端的复杂度

不方便扩展子工厂。

设计模式之简单工厂模式