简单工厂模式是类的创建模式,又叫做静态工厂方法,简单工厂模式是一个工厂对象决定创建出哪一个产品类的实例。
下面是个人的理解,在这个简单的工厂模式中,工厂类显然是核心所在,作为工厂类,它的方法是一个静态的方法,所以这个类也就是静态的类,而这个类里面的方法是一个返回类型为类类型,参数类型为字符串类型的方法,这样的话,当我们在测试类测试的时候,我们可以实现传入一个类名就可以返回一个类的功能,而在接口方面,我们定义了一个抽象类,同一种类型的不同具体实现,最后返回的时候都是归为这个接口的,下面是代码实现;
登录总接口类
package simpleFactory; public interface Login { public boolean verify(String name, String password); }
域认证登录
package simpleFactory; public class Domain implements Login{ public Domain() { // TODO Auto-generated constructor stub } public boolean verify(String name, String password){ System.out.println("这是域认证"); return true; } }
密码认证登录
package simpleFactory; public class Password implements Login{ public Password() { // TODO Auto-generated constructor stub } public boolean verify(String name, String password){ System.out.println("密码认证"); return true; } }
核心工厂类
package simpleFactory; public class loginManager { public loginManager() { // TODO Auto-generated constructor stub } public static Login factory(String type){ if(type.equals("Domain")) return new Domain(); else if(type.equals("Password")) return new Password(); else throw new RuntimeException("没有找到登录类型"); } }
测试类
package simpleFactory; public class Test { public Test() { // TODO Auto-generated constructor stub } public static void main(String[] args){ String loginType = "Password"; String name = "name"; String password = "password"; Login login = loginManager.factory(loginType); boolean issuccess = login.verify(name,password); if(issuccess == true){ System.out.println("passwordTYpe"); } else System.out.println("fail"); } }
下面是个人的理解;
作为简单工厂模式,我们可以设想为一个玩具工厂,而接口就是你这个产品的设计图纸,这种可以说设计玩具,像是洋娃娃和小汽车,而作为核心的工厂类就相当于玩具本身,老板说,我要生产一个洋娃娃,然后把这个命令传下去,工厂接受到这个命令之后,就开始照着设计图纸做玩具了,最后返回了一个实体的洋娃娃。这就是我理解的简单工厂模式。