【设计模式】工厂方法模式/抽象工厂模式

1.工厂方法模式

1. UML

image
比简单工厂更符合开闭原则,简单工厂依赖具体类,当增加具体类时就需要修改SimpleFactory类。
MethodFactoryPattern将工厂类也进行抽象,具体工厂类继承抽象工厂类,每个具体工厂类只负责创建一种具体类的实例。当具体类种类增加时,只需要增加具体工厂类,对扩展开放。

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

class ProductA:Product
{
	public void func()
	{
		Console.WriteLine("ProductA");
	}
}

class ProductB:Product
{
	public void func()
	{
		Console.WriteLine("ProductB");
	}
}

abstract class MethodFactory
{
	public abstract Product GetProduct();
}

class ProductAFactory
{
	public Product GetProduct()
	{
		return new ProductA();
	}
}

class ProductBFactory
{
	public Product GetProduct()
	{
		return new ProductB();
	}
}
MethodFactory factory;	//抽象工厂
factory = new ProductAFactory();	//创建ProductA的工厂
Product pp = factory.GetProduct();
pp.func();

2.抽象工厂模式

posted @ 2023-06-08 14:37  neon233  阅读(4)  评论(0编辑  收藏  举报