(1)java设计模式之简单工厂模式

简介: 一:简单工厂模式的优点          --->在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。

一:简单工厂模式的优点

          --->在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。

            --->模式的核心是工厂类。这个类含有必要的逻辑判断,可以决定在什么时候创建哪一个登录验证类的实例,而调用者则可以免除直接创建对象的责任。简单工厂模式通过这种做法实现了对责任的分割,当系统引入新的登录方式的时候无需修改调用者。

二:简单工厂模式的缺点

  这个工厂类集中了所以的创建逻辑,当有复杂的多层次等级结构时,所有的业务逻辑都在这个工厂类中实现。什么时候它不能工作了,整个系统都会受到影响。



三:简单工厂模式的代码示例


案例:登陆页面有多种登陆方式,一个工厂类,生成不同方式登陆的对象。

登陆接口

 1 package com.yeepay.sxf.interfaces;
 2 
 3 /**
 4  * 登陆接口
 5  * @author sxf
 6  *
 7  */
 8 public interface Login {
 9 
10     /**
11      * 登陆方法
12      * @param username
13      * @param passwd
14      * @return
15      */
16     public boolean goLogin(String username,String passwd);
17 }
View Code

qq登陆

 1 package com.yeepay.sxf.interfaces.impl;
 2 
 3 import com.yeepay.sxf.interfaces.Login;
 4 /**
 5  * qq号登陆
 6  * @author sxf
 7  *
 8  */
 9 public class Qlogin implements Login{
10 
11     @Override
12     public boolean goLogin(String username, String passwd) {
13         //利用qq帐号密码登陆
14         return false;
15     }
16 
17     
18 }
View Code
微博登陆
 1 package com.yeepay.sxf.interfaces.impl;
 2 
 3 import com.yeepay.sxf.interfaces.Login;
 4 /**
 5  * 微博登陆
 6  * @author sxf
 7  *
 8  */
 9 public class WeiboLogin implements Login {
10 
11     @Override
12     public boolean goLogin(String username, String passwd) {
13         //利用微博帐号登陆
14         return false;
15     }
16 
17     
18 }
View Code

登陆方式工厂

 1 package com.yeepay.sxf.interfaces.impl;
 2 
 3 import com.yeepay.sxf.interfaces.Login;
 4 /**
 5  * 登陆方式的工厂类
 6  * @author sxf
 7  *
 8  */
 9 public class LoginFactory {
10     public static Login createLogin(String fn){
11         if("qq".equals(fn)){
12             return new Qlogin();
13         }else if("weibo".equals(fn)){
14             return new WeiboLogin();
15         }else{
16             return null;
17         }
18     }
19 }
View Code

模拟场景测试

 1 package com.yeepay.sxf.test;
 2 
 3 import com.yeepay.sxf.interfaces.Login;
 4 import com.yeepay.sxf.interfaces.impl.LoginFactory;
 5 
 6 public class Test {
 7 
 8     public static void main(String[] args) {
 9         //前台提交用户名和密码,以及登陆方式
10         String username="290325337";
11         String password="shangxiaofei";
12         String fn="qq";
13         
14         //后台通过登陆方式获取合适的登陆bean
15         Login login=LoginFactory.createLogin(fn);
16         
17         //进行登陆
18         boolean flag=login.goLogin(username, password);
19         
20         //判断登陆成功或失败
21         if(flag){
22             //登陆成功
23         }else{
24             //登陆失败
25         }
26         
27         
28     }
29     
30     
31 }
View Code

 

相关文章
|
1天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
39 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
6天前
|
设计模式 前端开发 Java
19:Web开发模式与MVC设计模式-Java Web
19:Web开发模式与MVC设计模式-Java Web
16 4
|
6天前
|
设计模式 存储 前端开发
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
18:JavaBean简介及其在表单处理与DAO设计模式中的应用-Java Web
24 4
|
6天前
|
设计模式 缓存 监控
JAVA设计模式之结构型模式
结构模型:适配器模型、桥接模型、过滤器模型、组合模型、装饰器模型、外观模型、享受元模型和代理模型。
18 3
|
10天前
|
设计模式 算法 Java
Java基础教程(19)-设计模式简述
【4月更文挑战第19天】设计模式是软件设计中反复使用的代码设计经验,旨在提升代码的可重用性、可扩展性和可维护性。23种模式分为创建型、结构型和行为型三类。创建型模式如工厂方法、抽象工厂、建造者、原型和单例,关注对象创建与使用的分离。结构型模式涉及对象组合,如适配器、装饰器、外观等,增强结构灵活性。行为型模式专注于对象间职责分配和算法合作,包括责任链、命令、观察者等。设计模式提供标准化解决方案,促进代码交流和复用。
|
11天前
|
Java 开发者 UED
Java 异步和事件驱动编程:探索响应式模式
【4月更文挑战第27天】在现代软件开发中,异步和事件驱动编程是提高应用性能和响应性的关键策略。Java 提供了多种机制来支持这些编程模式,使开发者能够构建高效、可扩展的应用程序。
23 4
|
7月前
|
设计模式 安全 Java
JAVA设计模式1:单例模式,确保每个类只能有一个实例
JAVA设计模式1:单例模式,确保每个类只能有一个实例
|
7月前
|
设计模式 存储 安全
【设计模式——学习笔记】23种设计模式——单例模式Singleton(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——单例模式Singleton(原理讲解+应用场景介绍+案例介绍+Java代码实现)
24 0
|
11天前
|
设计模式 安全 Java
【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
|
24天前
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
16 1