快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → 设计模式之简单工厂模式

设计模式之简单工厂模式

时间:2020-03-07 13:03:10人气:作者:快盘下载我要评论

设计模式之简单工厂模式

设计模式之简单工厂模式

简单工厂模式:通过接口创建对象,但不会暴露对象创建逻辑


工厂模式从字面上的理解来看,就是一个工厂,而实际意义也是一样的,它就是一个工厂,生产出我们需要的东西,对应现实生活中的工厂,玩具工厂就是生产出玩具的,电子工厂就是生产出各种电子设备的,在Java语言中设计模式里面的工厂模式,就是为我们生产出各种我们需要的对象的,我们不需要关心具体的细节,我们只需要对它说,hi,我需要什么什么什么,然后,它就会给我们什么,就好比你跟一个电子厂说,hi,我需要一台电脑,然后电子厂就给你生产了一台电脑,而你并不需要知道这电脑到底是如何制造出来的,工厂模式的含义我们已经说清楚,接下来我们一起看看工厂模式的分类

1.简单工厂

简单工厂从字面意思就能看出,相对简单的工厂,它的成本不高,复杂性相对也低,比较适用于业务相对简单,并且业务需求变动少的场景。

下面我们来设定一个简单的场景,并用简单工厂来实现它:

假设我们的项目中有一个发短信的功能,而我们不同的用户可能用的是不同的手机运营商,例如移动、联通、电信,那我们应该如何去实现不同的手机运营商接收到的是不同的短信内容呢?

首先,我们应该先定义一个接口或者是抽象类,两者在这里的含义是一样的,这里使用的是接口,这个接口只有一个方法,就是发短信的方法

public interface Message {
   void send();
}

然后我们去定义一个手机运营商的类并实现Message接口的方法,假设我们现在只对接了移动

public class Yidong implements Message {
   @Override
   public void send() {
       System.out.println("hi,我是移动用户的短信内容");
   }
}

然后我们再创建一个message的工厂类:MessageFactory,这个工厂类中有一个静态方法getMessage(),接收一个String类型的参数,然后我们将根据这个参数的值判断将要生产哪个运营商的短信内容给用户

public class MessageFactory {
   public static Message getMessage(String name){
       switch (name){
           case  "移动":
               return new Yidong();
           case "联通":
               return new Liantong();
       }
       throw new RuntimeException();
   }
}

最后,我们创建一个mian函数来调用这个工厂的静态方法看看

public static void main(String[] args) {
   Message message = MessageFactory.getMessage("移动");
   message.send();
   //最后打印输出的结果为:hi,我是移动用户的短信内容
}

到这里为止,简单工厂就已经完成了,并通过了测试,如果后面有新增的需求,比方说又对接了联通的短信,那么我们只需要新增一个联通的类,并实现Message接口里的方法,然后在MessageFactory中新增一个case分支,在其中new出联通的对象来即可

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。