工厂方法✅
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
一、实验要求
- 使用工厂方法模式实现下面描述的功能:
海尔工厂(Haier)生产海尔空调(HaierAirCondition),美的工厂(Midea)生产美的空调(MideaAirCondition)
抽象产品类:AIR
具体产品类:HaierAIR MideaAIR
抽象工厂类:AIRFactory
具体工厂类:HaierFactory MideaAIRFactory
二、代码✅
AIR.java
public interface AIR
{
void work();
}
HaierAIR .java
public class HaierAIR implements AIR
{
public void work()
{
System.out.println("HaierAirCondition working!");
}
}
AIRFactory.java
public interface AIRFactory
{
AIR produceAIR();
}
HaierAIRFactory .java
public class HaierAIRFactory implements AIRFactory
{
public HaierAIR produceAIR()
{
System.out.println("HaierAirCondition produced!");
return new HaierAIR();
}
}
MainClass.java
public class MainClass {
public static void main(String[] args) {
AIRFactory AIRfactory=new HaierAIRFactory();
AIR air=AIRfactory.produceAIR();
AIRfactory=new MideaAIRFactory();
air=AIRfactory.produceAIR();
}
}
air= ((MideaAIRFactory) AIRfactory).produceAIR();
}
}
完整代码
package AirCondition;
import AirCondition.HaierAIRFactory;
public class MainClass {
public static void main(String[] args) {
AIRFactory AIRfactory=new HaierAIRFactory();
AIR air= ((HaierAIRFactory) AIRfactory).produceAIR();
AIRfactory=new MideaAIRFactory();
air= ((MideaAIRFactory) AIRfactory).produceAIR();
}
}
package AirCondition;
public class HaierAIRFactory implements AIRFactory
{
public HaierAIR produceAIR()
{
System.out.println(“HaierAirCondition produced!”);
return new HaierAIR();
}
}
类图
代码结果
总结
这些都是基础的,不会的多多看前面文章.