代码demo
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/26b78a0197d85f5b4a0dbde6f94cdace.png)
抽象工厂测试类
package com.zhh.designpattern.abstractfactory;
public class AbstractFactoryTest {
public static void main(String[] args) {
IFurnitureFactory haierFurnitureFactory = new HaierFurnitureFactory();
IAirCondition haierAirCondition = haierFurnitureFactory.createAirCondition();
haierAirCondition.working();
IFreezer haierFreezer = haierFurnitureFactory.createFreezer();
haierFreezer.working();
IFurnitureFactory meidiFurnitureFactory = new MeidiFurnitureFactory();
IAirCondition meidiAirCondition = meidiFurnitureFactory.createAirCondition();
meidiAirCondition.working();
IFreezer meidiFreezer = meidiFurnitureFactory.createFreezer();
meidiFreezer.working();
IFurnitureFactory haixinFurnitureFactory = null;
IAirCondition haixinAirCondition = haixinFurnitureFactory.createAirCondition();
haixinAirCondition.working();
IFreezer haixinFreezer = haixinFurnitureFactory.createFreezer();
haixinFreezer.working();
}
}
测试效果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6e22d75846957b0c631f9825084677f7.png)
抽象工厂(家用电器接口)
package com.zhh.designpattern.abstractfactory;
public interface IFurnitureFactory {
IAirCondition createAirCondition();
IFreezer createFreezer();
}
抽象产品(空调)
package com.zhh.designpattern.abstractfactory;
public interface IAirCondition{
void working();
}
抽象产品(冰箱)
package com.zhh.designpattern.abstractfactory;
public interface IFreezer {
void working();
}
具体工厂(海尔电器工厂)
package com.zhh.designpattern.abstractfactory;
public class HaierFurnitureFactory implements IFurnitureFactory {
@Override
public IAirCondition createAirCondition() {
return new HaierAirCondition();
}
@Override
public IFreezer createFreezer() {
return new HaierFreezer();
}
}
具体工厂(美的电器工厂)
package com.zhh.designpattern.abstractfactory;
public class MeidiFurnitureFactory implements IFurnitureFactory {
@Override
public IAirCondition createAirCondition() {
return new MeidiAirCondition();
}
@Override
public IFreezer createFreezer() {
return new MeidiFreezer();
}
}
具体产品(海尔空调)
package com.zhh.designpattern.abstractfactory;
public class HaierAirCondition implements IAirCondition {
HaierAirCondition(){
System.out.println("海尔空调生产完成.");
}
@Override
public void working() {
System.out.println("海尔空调开始工作..\n----------------------------\n");
}
}
具体产品(海尔冰箱)
package com.zhh.designpattern.abstractfactory;
public class HaierFreezer implements IFreezer {
HaierFreezer(){
System.out.println("海尔冰箱生产完成.");
}
@Override
public void working() {
System.out.println("海尔冰箱开始工作..\n--------------------\n");
}
}
具体产品(美的空调)
package com.zhh.designpattern.abstractfactory;
public class MeidiAirCondition implements IAirCondition {
MeidiAirCondition(){
System.out.println("美的空调生产完成.");
}
@Override
public void working() {
System.out.println("美的空调开始工作..\n--------------------\n");
}
}
具体产品(美的冰箱)
package com.zhh.designpattern.abstractfactory;
public class MeidiFreezer implements IFreezer {
MeidiFreezer(){
System.out.println("美的冰箱生产完成.");
}
@Override
public void working() {
System.out.println("美的冰箱开始工作..\n---------------------------\n");
}
}