软件设计之抽象工厂模式

 抽象工厂模式指把一个产品变成一个接口,它的子产品作为接口的实现,所以还需要一个总抽象工厂和它的分抽象工厂。

软件设计之抽象工厂模式_第1张图片

下面我们用一个案例去说明抽象工厂模式。

软件设计之抽象工厂模式_第2张图片

在class中可以选择super类和medium类,即选择一个产品的子类。在type中可以选择产品的种类。

现在我们在原有的模式上新增一个产品SemiDetacher。

软件设计之抽象工厂模式_第3张图片

由抽象工厂的设计模式,需要增加一个接口、两个实现类,修改抽象工厂增加新的方法。

接口
SemiDetacher
public interface SemiDetacher {
    public String getSemiDetacherInfo();
}
SuperSemiDetacher.java
public class SuperSemiDetacher implements SemiDetacher{
    public String getSemiDetacherInfo(){
        return "AbstractFactory\\superSemiDetacher.html";
    }
}
MediumSemiDetacher.java
public class MediumSemiDetacher implements SemiDetacher{
    public String getSemiDetacherInfo() {
        return "AbstractFactory\\mediumSemiDetacher.html";
    }
}
BuildingFactory
public abstract SemiDetacher getSemiDetacher();
MediumBuildingFactory
public SemiDetacher getSemiDetacher(){
      return new MediumSemiDetacher();
   }
SuperBuildingFactory
public SemiDetacher getSemiDetacher(){
      return new SuperSemiDetacher();
   }
AbstractFactoryGUI

下面是有关的修改(向type中添加Semi-detacher,并设置监听)

public static final String SEMIDETACHER = "Semi-detacher";
cmbHouseType.addItem(SEMIDETACHER);
if (type.equals(AbstractFactoryGUI.SEMIDETACHER)) {
// Need code here
          SemiDetacher sd = bf.getSemiDetacher();
          String fileNm = sd.getSemiDetacherInfo();
          putHouseInfoToScreen(fileNm);

 }

另外,还有两个html文件。

SuperSemiDetacher.html




 
 Title


super semidetacher

mediumSemiDetacher.html




    
    Title


    

medium semidetacher

软件设计之抽象工厂模式_第4张图片

软件设计之抽象工厂模式_第5张图片

软件设计之抽象工厂模式_第6张图片

百度网盘 

链接:https://pan.baidu.com/s/1pA12M670Poe1fJIiRnLE0w?pwd=3s9k 
提取码:3s9k

你可能感兴趣的:(开发工具,抽象工厂模式)