工厂模式

1.工厂方法
针对一个产品一个工厂

interface Moveable{
	void go();
}
public Class Car interface Moveable{
	public void go(){
		System.out.println("car go")
	}
}
interface Factory{
	Moveable create();
}
public Class CarFactory interface{
	public Moveable create(){
		return new Car();
	}
}

2.抽象工厂
针对一个族群

角色结构
抽象产品类:各种产品的抽象接口或抽象类;
具体产品类:抽象产品接口(抽象类)的实现类;
抽象工厂类:核心,定义用于生成抽象产品的接口;
具体工厂类:继承抽象工厂类,生成一组具体产品

abstract Class Food{
	void foodName();
}
abstract Class Weapon{
	void fire();
}
abstract Class Vehicle{
	void create();
}

abstract Class AbstractFactory{
	Food createFood();
	Weapon createWeapon();
	Vehicle createVehicle();
}

  • 注意:
    1.形容词使用interface ,名称使用abstract
    2.工厂方法就是只有一个族群的抽象工厂

你可能感兴趣的:(设计模式)