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

一:简单工厂模式的优点

          --->在阎宏博士的《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

 

时间: 2024-08-01 12:46:18

(1)java设计模式之简单工厂模式的相关文章

java设计模式之简单工厂模式

在编写一个计算器程序时,可以将业务逻辑和显示分离,业务逻辑封装为一个类(封装):如果要新添加一种运算,可以先创建一个Operation的基类,然后各种运算从Operation类继承,并实现GetResult()虚函数,这时添加新的运算只需要派生一个新的类,即不需要之前的运算参与编译.如何让计算器知道我是希望使用哪种运算呢?应该考虑单独的类来做这个创造实例的过程,这就是工厂.创建一个OperationFactory类,传入参数,函数createOperate就可以实例化出合适的对象. Java代码

java设计模式之简单工厂模式_java

在编写一个计算器程序时,可以将业务逻辑和显示分离,业务逻辑封装为一个类(封装):如果要新添加一种运算,可以先创建一个Operation的基类,然后各种运算从Operation类继承,并实现GetResult()虚函数,这时添加新的运算只需要派生一个新的类,即不需要之前的运算参与编译.如何让计算器知道我是希望使用哪种运算呢?应该考虑单独的类来做这个创造实例的过程,这就是工厂.创建一个OperationFactory类,传入参数,函数createOperate就可以实例化出合适的对象. Java代码

java设计模式之简单工厂模式简述_java

简单工厂模式的概念 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例.  简单工厂模式的UML图  简单工厂模式代码学习简单工厂模式的时候我用的是一个与人类有相关的例子.人类在世界分为男人和女人,首先定义一个Human产品的抽象接口  /** * This is factory patter package */ package com.roc.factory; /**

设计模式: 简单工厂模式

引入: 在我们的思维中,会有一种习惯,当遇到某种问题时,会直接考虑用最直接的语言去去实现它,而往往忽略了整个程序的可维护性.可扩展性. 比如,我们写一个基本的计算器功能,要求能计算四则运算,大家或许会直接写: public class ProgramDemo{ public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(

php设计模式之简单工厂模式详解_php技巧

本文以实例形式较为详细的介绍了PHP设计模式的简单工厂模式,对于进行PHP程序设计来说有很好的借鉴作用.具体如下: 一.概念 简单工厂模式 [静态工厂方法模式](Static Factory Method) 是类的创建模式 工厂模式的几种形态: 1.简单工厂模式(Simple Factory)又叫做 静态工厂方法模式(Static Factory Method) 2.工厂方法模式(Factory Method)又叫做 多态性工厂模式(Polymorphic Factory) 3.抽象工厂模式(A

C#设计模式(2)——简单工厂模式

原文:C#设计模式(2)--简单工厂模式 一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式--简单工厂模式. 二.简单工厂模式的介绍 说到简单工厂,自然的第一个疑问当然就是什么是简单工厂模式了? 在现实生活中工厂是负责生产产品的,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个类, 我们平常编程中,当使用"new"关键字创建一个对象时,此时该类就依赖与

设计模式-简单工厂模式(SimpleFactory-C#)

设计 <java与模式> 上面那本书上的例子举的是园丁和果园的例子,学习设计模式最好在生活中自己找个例子 实践一下,下面是我自己的一个例子,是讲快餐店的例子,快餐店提供很多食物,比如 面条,米饭,面包.首先定义了一个Food接口,然后这些食物都从它来继承,定义了一个大厨 他包办所有食物的制作工作,这就是我所理解的简单工厂模式的概念,下面是源代码: using System; namespace SimpleFactoryPattern{ /// <summary> /// 简单工厂

设计模式之简单工厂模式

设计模式,六大设计原则,类的特性 总纲 http://blog.csdn.net/fenglailea/article/details/52733435 风.fox 简单工厂模式(Simple Factory) 简单工厂模式就是工厂方法模式的缩小版 通用类图 组成 1.工厂类:这是本模式的核心,含有一定的商业逻辑和判断逻辑.在java中它往往由一个具体类实现. 2.抽象产品:它一般是具体产品继承的父类或者实现的接口.在java中由接口或者抽象类来实现. 3.具体产品:工厂类所创建的对象就是此角色

大话设计模式之简单工厂模式

       从设计模式的类型来说,简单工厂模式是属于创建性模式,又叫做静态工厂方法模式,但不属于23中GOF设计模式之一,简单的工厂模式是由一个工厂对象决定创建出哪一种产品类的实例,简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现.         那么到底什么是简单工厂模式?我们中午在中快食堂吃饭,中快食堂满足了我们的需求,这里的中快食堂就是一个简单的工厂,在现实生活中工厂是负责生产产品的,,同样在设计模式中,简单工厂模式我们也可以理解为负责生产对象的一个