*/
}
}
}
简单工厂模式的结构如下图:
我们可以设想一下真实的场景,如果把上面的Test当做一个servlet的话,当客户端发起登录请求——请求交给服务端的Servlet——Servlet根据客户端传递的loginType调用工厂类LoginManager的factory()方法——factory()方法根据参数loginType创建相应的登录验证类(DomainLogin或PasswordLogin)并返回——登录验证类调用方法verify()验证用户名密码是否正确
假如不使用简单工厂模式则验证登录Servlet代码如下(假设Test为一个Servlet,变量loginType、name、password表示从客户端传递过来的参数):
public class Test {
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{
/**
* 业务逻辑
*/
}
}
}
上面的代码会不会很蛋疼啊 。。。呵呵
《JAVA与模式》一书中使用java.text.DataFormat类作为简单工厂模式的典型例子叙述 。
简单工厂模式的优点
模式的核心是工厂类 。这个类含有必要的逻辑判断,可以决定在什么时候创建哪一个登录验证类的实例,而调用者则可以免除直接创建对象的责任 。简单工厂模式通过这种做法实现了对责任的分割,当系统引入新的登录方式的时候无需修改调用者 。
简单工厂模式的缺点
这个工厂类集中了所以的创建逻辑,当有复杂的多层次等级结构时,所有的业务逻辑都在这个工厂类中实现 。什么时候它不能工作了 , 整个系统都会受到影响 。
什么是Java的工厂模式?factory模式不需要建立什么包,完全得靠你对factory模式的理解 , 工厂模式基本上应该是体现了一个多态的概念 , 用户只关心结果,而不需要关心其具体过程...
工厂模式有三个参与者,抽象产品(Product)、工厂(Creator)和具体产品(ConcreteProduct) 。客户只会看到工厂和抽象产品 。
public interface Product{
public String getName();
}
public class ConcreteProduct implements Product{
public String getName(){
return "产品1";
}
}
public class Creator{
public static Product create1(){
return new ConcreteProduct();
}
}
工厂模式的作用在于将创建具体产品的方法由工厂类控制,客户只需要知道产品的抽象类型
【静态工厂模式代码java 静态工厂类】静态工厂模式代码java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于静态工厂类、静态工厂模式代码java的信息别忘了在本站进行查找喔 。
推荐阅读
- 华为11月鸿蒙3.0,华为鸿蒙30什么时候可以升级
- Linux等待若干秒命令,linux 等待30秒后执行命令
- 濮阳县一中钉钉直播回放,濮阳市一中放学时间
- python里sys函数 python sysargv
- 苹果发视频号怎么看不见,苹果短信怎么发视频
- 拍摄环境用什么设备好,拍摄环境有哪些
- python升序函数 python sort升序
- 魔战下载,魔战 下载
- 美国服务器维护,服务器在美国维护的网站