JAVA模式之简单工厂模式

简单工厂模式是类的建立模式,又叫作静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定建立出哪种产品类的实例。即:经过实现接口中定义的方法来实现不一样的功能,经过统一的工厂进行管理具体实现什么样的功能。

例如:用户登陆的不一样的验证方法

代码实现:

public interface Login {
//登陆验证
public boolean verify(String name , String password);
}
public class PasswordLogin implements Login {
public boolean verify(String name, String password) {
System.out.println("PasswordLogin");
return false;
}
}
public class DomainLogin implements Login {
public boolean verify(String name, String password) {
System.out.println("DomainLogin");
return false;
}
}
public class LoginManager {
public static Login factory(String type){
if(type.equals("password")){
return new PasswordLogin();
}else if(type.equals("passcode")){
return new DomainLogin();
}else{
/**
* 这里抛出一个自定义异常会更恰当
*/
throw new RuntimeException("没有找到登陆类型");
}
}
}
public class LoginTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
String loginType = "password";
String name = "name";
String password = "password";
Login login = LoginManager.factory(loginType);
boolean bool = login.verify(name, password);
if (bool) {
/**
* 业务逻辑
*/
} else {
/**
* 业务逻辑
*/
}
}
}
运行结果: PasswordLogin

假如不使用简单工厂模式则验证登陆Servlet代码以下
public class LoginTest {
public static void main(String[] args) {
// TODO Auto-generated method stub

String loginType = "password";
String name = "name";
String password = "password";
//处理口令认证
if(loginType.equals("password")){
PasswordLogin passwordLogin = new PasswordLogin();
boolean bool = passwordLogin.verify(name, password);
if (bool) {
/**
* 业务逻辑
*/
} else {
/**
* 业务逻辑
*/
}
}
//处理域认证
else if(loginType.equals("passcode")){
DomainLogin domainLogin = new DomainLogin();
boolean bool = domainLogin.verify(name, password);
if (bool) {
/**
* 业务逻辑
*/
} else {
/**
* 业务逻辑
*/
}
}else{
/**
* 业务逻辑
*/
}
}
}

简单工厂模式的优势

  模式的核心是工厂类。这个类含有必要的逻辑判断,能够决定在何时建立哪个登陆验证类的实例,而调用者则能够免除直接建立对象的责任。简单工厂模式经过这种作法实现了对责任的分割,当系统引入新的登陆方式的时候无需修改调用者。html

简单工厂模式的缺点

  这个工厂类集中了因此的建立逻辑,当有复杂的多层次等级结构时,全部的业务逻辑都在这个工厂类中实现。何时它不能工做了,整个系统都会受到影响。java

 

相关资料

博客《JAVA与模式》之简单工厂模式dom

相关文章
相关标签/搜索