工厂方法✅

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。

一、实验要求

  1. 使用工厂方法模式实现下面描述的功能:
     海尔工厂(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();

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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();
}
}

类图

工厂方法

代码结果

工厂方法

总结

这些都是基础的,不会的多多看前面文章.