设计模式之简单工厂模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之简单工厂模式相关的知识,希望对你有一定的参考价值。
简单工厂模式
提供一个创建对象实例的功能,不需要关心其具体实现,被创建实例的类型可以是接口,抽象类、也可以是具体类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。就拿创建用户来说来说,假如应用系统需要创建普通用户(需要在普通用户表中创建)与接口用户(需要在接口用户表中创建用户)那么自然的做法就是建立一个各种创建用户都适用的接口,如下图所示:
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.总结
理解简单工厂:
简单内部工厂重要的功能是通过“选择合适的实现类”来创建实例对象。
简单工厂的优缺点:
帮助封装
解耦
增加客户端的复杂度
不方便扩展子工厂。
以上是关于设计模式之简单工厂模式的主要内容,如果未能解决你的问题,请参考以下文章