设计模式-工厂模式的3中不同实现[JAVA]
工厂模式简介
In Factory pattern, we create object without exposing the creation logic to the client and refer to newly created object using a common interface.可以简单理解为:通过共用的接口或者工厂来创建对象,而不需求关注对象创建细节。调用端与工厂进行交互,与对象进行解耦。
3种不同的实现版本【JAVA8实现】
简单工厂实现
1. 类图
2. 实现
以华为生产手机为例,华为的一个手机工厂里能够生产P30和Mate30,P30和Mate30都能打电话,那么用户买手机的时候,只依赖手机(能打电话)这个抽象。根据华为工程提供的创建手机的方法,传入不同的手机型号,就可以获得手机的实例。
/**
* 简单工厂模式
* @Author: Shiraki
* @Date: 2020/9/15 10:48
*/
public class DemoSimpleFactory {
// 模拟client调用
public static void main(String[] args) {
// 生产个P30
SimpleHuaWeiFactory.createPhone("P30").call();
// 生产个Mate30
SimpleHuaWeiFactory.createPhone("Mate30").call();
// 没有生产P40的手机厂
// SimpleHuaWeiFactory.createPhone("P40").call();
}
}
// 手机打电话的接口
interface IPhoner {
public void call();
}
// 产品 P30
class P30 implements IPhoner{
@Override
public void call() {
System.out.println("P30 is ringing");
}
}
// 产品 Mate30
class Mate30 implements IPhoner{
@Override
public void call() {
System.out.println("Mate30 is ringing");
}
}
// 华为厂里生产手机
class SimpleHuaWeiFactory {
public static IPhoner createPhone(String type) {
IPhoner iPhoner