美文网首页
Java设计模式——工厂

Java设计模式——工厂

作者: gogoingmonkey | 来源:发表于2017-11-22 17:17 被阅读18次

Java设计模式——工厂

简单工厂

简单工厂模式就是定义一个接口,写共性的方法,做具体不同的事,就像发QQ,发微信,都是发送东西,但是发送是不同的软件
步骤:
1.定义接口,
2.创建各自子类实现接口,重写方法,坐各自的事;
3.创建工厂类
4.调用时候通过调用方法时候,传递的参数不同返回不同实现类的对象
优缺点:
不利于扩展,扩展需要改工程类代码,传递的参数找不到匹配会很尴尬;
代码:

//创建接口
 public interface ISender {
    void  send();
}
//创建QQ具体类实现接口
 public class SendQQ implements ISender {
    @Override
    public void send() {
        Log.e(TAG, "发QQ " );
    }
}
//创建微信具体类实现接口
 public class SendWeChat implements ISender {
    @Override
    public void send() {
        Log.e(TAG, "发微信消息" );
    }
}
//创建工厂类
 public class SendFactory {
//    简单的工厂
    public ISender sendMessage(String s) {
        if ("QQ".equals(s)) {
            return new SendQQ();
        } else if ("WeChat".equals(s)) {
            return new SendWeChat();
        }
        return null;
    }
 //调用
  SendFactory sendFactory = new SendFactory();
        sendFactory.sendMessage("QQ");

多个工厂

多个工厂和简单工厂的区别就在工厂类不是按调用方法传递来的参数匹配,而是写多个方法,直接返回对应的实现类对象

@Override
  public class SendFactory {

    public ISender sendQQMessage(){
       return new SendQQ();
    }
    public ISender senWeChat(){
        return new SendWeChat();
    }
}

这样的缺点依然很明显,就是新增加实现类需要改工厂类的代码;

静态工厂

静态工厂就是上面的方法增加static 修饰,这样比起多个工厂好处就在不用创建对象,直接类名调用

@Override
  public class SendFactory {

    public static ISender sendQQMessage(){
       return new SendQQ();
    }
    public static ISender senWeChat(){
        return new SendWeChat();
    }
}

抽象工厂

抽象工厂的实现就是增加了一个接口,创建不同的工厂来实现这个接口。这样的好处就是扩展,不用去改工厂类的代码。直接增加工厂类实现这个接口就好

 //工厂接口  你应该思考,这个接口为什么要定义,因为他们有共性,都是发送东西,具有发送功能,所以接口定义一个make方法,类型是发送类型就是发送不同东西共性的类型

public interface IProvider {
ISender make();
}

```java
QQ发送工厂

public class SendQQFactory implements IProvider {
    @Override
    public ISender make() {
   return new  SendQQ();
    }
}
微信发送工厂
public class SendWeChatFactory implements IProvider {
    @Override
    public ISender make() {
   return new SendWeChat();
    }
}

//调用的时候直接
  //抽象工厂的调用
       new  SendQQFactory().make();

相关文章

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • Java设计模式之01_Factory(工厂模式)

    更多Java设计模式:Java设计模式-目录 一、工厂模式介绍 工厂模式专门负责将大量有共同接口的类实例化。工厂模...

  • 设计模式之工厂模式

    工厂模式 工厂模式(Factory Pattern)是Java中最常用的设计模式之一,这种设计模式属于创建型模式,...

  • 设计模式——工厂模式和抽象工厂模式

    Java设计模式——工厂模式 工厂模式和抽象工厂模式都属于创建型模式。 创建型模式这些设计模式提供了一种在创建对象...

  • 设计模式-工厂模式

    工厂模式定义: 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式...

  • 设计模式之工厂模式详解(附源代码)

    工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创...

  • 工厂模式

    工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创...

  • 设计模式--简单工厂模式

    什么是工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式...

  • 设计模式之工厂模式

    什么是工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式...

网友评论

      本文标题:Java设计模式——工厂

      本文链接:https://www.haomeiwen.com/subject/gqdovxtx.html