Java设计模式--工厂方法模式

工厂方法模式的定义为:定义一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法模式让类吧实例化推迟到了子类

工厂方法模式分为三类:

1.普通工厂
首先创建实现类的接口:

public interface Show{
    public void whoIAm();
}

创建两个具体的实现类

class A implements Show{
    @Override
    public void whoIAm(){
        System.out.println("我是A类");
    }
}
class B implements Show{
    @Override
    public void whoIAm(){
        System.out.println("我是B类");
    }
}

创建普通工厂

public class Factory{
    public Show getClass(String name){
        if(name.equals("A")){
            return new A();
        }
        if(name.equals("B")){
            return new B();
        }
        return null;
    }
}

普通工厂的最大缺点就是当传入的参数匹配不到时就无法创建实例,多个工厂方法模式用提供多个工厂方法的方式来提供实例创建。
2.多个工厂方法模式

public class Factory{
    public Show getAClass(){
        return new A();
    }
    public Show getBClass(){
        return new B();
    }
}

3.静态工厂方法模式
静态工厂方法模式与多个工厂方法模式的区别就是将提供实例的方法变成静态提供,使我们不需要实例化工厂,直接可以获得实例。

public class Factory{
    public static Show getAClass(){
        return new A();
    }
    public static Show getBClass(){
        return new B();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method 使一个类的实例化延迟到其...
    jerry_shenchao阅读 535评论 0 1
  • 简单工厂模式(Simple Factory Pattern) 定义一个工厂类,可以根据参数的不同返回不同类的实例,...
    ghwaphon阅读 1,165评论 5 9
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 在《幸福的方法》泰勒讲到了如何实现幸福,重点讲了快乐学习、开心工作和美满婚姻,很多细微的行为也是需要我们我们养成习...
    正念如是阅读 204评论 0 0
  • 今晚倚靠床翻看之前照片,当看到2014年去台湾游玩的照片,不禁勾起我的回忆。 台湾气候宜人,景色优美,美食连连,尤...
    三七木木阅读 224评论 0 0