最新消息

Java工厂方法模式(Factory method)

设计模式 金牌剑客 1443℃ 0评论

定义

工厂方法模式(Factory Method):定义一个用于创建对象的接口IFactory,在具体的Factory子类中决定实例化哪一个IProduct产品,该模式使得一个类(即IProduct)的实例化延迟到其Factory子类。

工厂方法的本质:延迟到子类来选择实现。

UML类图

factoryMethod

Java代码

IProduct.java

public interface IProduct {
	public void create();
}

AProduct.java

public class AProduct implements IProduct {
	public void create() {
		System.out.println("AProduct");
	}
}

BProduct.java

public class BProduct implements IProduct {
	public void create() {
		System.out.println("BProduct");
	}
}

IFactory.java

public interface IFactory {
	public IProduct getProduct();
}

AFactory.java

public class AFactory implements IFactory {
	public IProduct getProduct() {
		return new AProduct();
	}
}

BFactory.java

public class BFactory implements IFactory {
	public IProduct getProduct() {
		return new BProduct();
	}
}

Client.java

public class Client {
	public static void main(String[] args) {
		IProduct aProduct = new AFactory().getProduct();
		IProduct bProduct = new BFactory().getProduct();
		aProduct.create();
		bProduct.create();
	}
}

优缺点

优点

可以在不知道具体实现的情况下编程

工厂方法模式可以让你在实现功能时,若需要某个产品的对象,只需使用产品的接口即可,而不需要知道具体的产品对象。

更容易扩展对象的新版本

在扩展新对象时,只需实现新的工厂子类,调用端使用新的工厂子类即可,不需要修改已有的工厂子类。

缺点

具体产品对象和工厂方法是耦合的

转载请注明:QualInfo » Java工厂方法模式(Factory method)

喜欢 (1)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址