Java 设计模式之工厂模式

导读:本篇文章讲解 Java 设计模式之工厂模式,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

前言:

Factory Method 是设计模式中比较常见的模式,想象一个万能的工厂,你输入不同的原料产出不同的产品,这就是工厂模式。

1.三种工厂

很多讲设计模式都会讲三种工厂,分别是:简单工厂、工厂方法、抽象工厂。
这种理解是不对的,看外文书或直译书一般很难看到三种工厂这种概念,国内这么讲是为了更好理解工厂模式。真正的工厂模式是第二种情况,第三种可以看作是工厂模式的引申,第一种算是入门。

2.工厂模式

工厂模式涉及到两类概念:产品和工厂。
首先定义产品,
抽象产品类:

public abstract class Product {
    public abstract void show();
}

具体产品类(这里加了一个面包属性 weight ):

public class Bread extends Product {
    private int weight;

    public Bread(int weight) {
        this.weight = weight;
    }

    public void show() {
        System.out.println("面包总共" + this.weight + "克");
    }
}

定义完了产品来说工厂,
抽象工厂:

public abstract class Factory {
    public abstract Product produce(int weight);
}

这里可能会有疑问,为啥会有一个传参 weight?因为工厂类终究是生产产品的,其方法要和产品有相关性。
具体工厂实现类:

public class BreadFactory extends Factory {
    public Product produce(int weight) {
        return new Bread(weight);
    }
}
2.测试

创建一个测试方法:

public class Main {
    public static void main(String[] args) {
        Factory factory = new BreadFactory(); 
        Product product = factory.produce(12);
        product.show();
    }
}

输出:

面包总共12克
3.Tips

工厂方法虽然号称生产万物,但是实际中使用会有各种限制,例如定义一个工厂同时生产面包和飞机,不是说不可以,而是有太多属性不一致,会造成代码混乱。
不要迷恋设计模式,设计模式最多也是起代码设计指导作用。
对三种工厂模式感兴趣推荐看Java 设计模式——工厂模式

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/16562.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!