工厂方法模式

Posted 邓戈麟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂方法模式相关的知识,希望对你有一定的参考价值。

 

工厂方法概述

工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。

 

优点

客户端不需要在负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性

 

缺点

需要额外的编写代码,增加子工作量

 

public class IntegerDemo {
	public static void main(String[] args) {
		Factory factory = new DogFactory();
		Animal animal = factory.createAnimal();
		animal.eat();

		factory = new CatFactory();
		animal = factory.createAnimal();
		animal.eat();
	}
}

abstract class Animal {// 抽象类
	public abstract void eat();
}

class Dog extends Animal {// 狗
	public void eat() {
		System.out.println("a dog is eatting.");
	}
}

class Cat extends Animal {// 猫
	public void eat() {
		System.out.println("a cat is eatting.");
	}
}

interface Factory {// 接口
	public abstract Animal createAnimal();
}

class DogFactory implements Factory {// 实现接口
	public Animal createAnimal() {
		return new Dog();
	}
}

class CatFactory implements Factory {// 实现接口
	public Animal createAnimal() {
		return new Cat();
	}
}

 

以上是关于工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式-简单工厂工厂方法模式抽象工厂模式详解

工厂方法模式

设计模式-工厂方法模式(Go实现)

C++工厂模式(简单工厂工厂方法抽象工厂)

C++工厂模式(简单工厂工厂方法抽象工厂)

设计模式---工厂模式