设计模式抽象工厂设计模式
Posted 张士君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式抽象工厂设计模式相关的知识,希望对你有一定的参考价值。
抽象工厂设计模式:其不同于静态工厂和工厂方法设计模式生产同一业务类型的单个产品系列,抽象工厂设计模式生产的是一系列的产品对象,是针对更加多元化的业务场景诞生的。
Talk is cheap,Show me the code!
Cpu抽象系列产品
/**
* 作者:created by storm
* cpu产品接口
*/
public interface Cpu {
void compute();
}
Cpu具体产品IbmCpu
/**
* 作者:created by storm
* cpu具体产品角色IbmCpu
*/
public class IbmCpu implements Cpu {
public void compute() {
System.out.println("IbmCpu");
}
}
Cpu具体产品IntelCpu
/**
* 作者:created by storm
* cpu具体产品角色IntelCpu
*/
public class IntelCpu implements Cpu {
public void compute() {
System.out.println("IntelCpu compute");
}
}
Monitor抽象系列产品
/**
* 作者:created by storm
* pc屏幕产品接口
*/
public interface Monitor {
void showContent();
}
Monitor具体产品IbmMonitor
/**
* 作者:created by storm
* IBM显示器具体角色
*/
public class IbmMonitor implements Monitor {
public void showContent() {
System.out.println("IbmMonitor showContent");
}
}
Monitor具体产品IntelMonitor
/**
* 作者:created by storm
* 英特尔显示器具体产品角色
*/
public class IntelMonitor implements Monitor {
public void showContent() {
System.out.println("IntelMonitor showContent");
}
}
抽象工厂类ComputerFactory
/**
* 作者:created by storm
* 抽象工厂设计模式
* 不同于静态工厂设计模式和工厂方法模式,创建的产品不再是单一类的单个对象,而是同一系列的多个产品对象。
* 多个工厂类创建不同的产品系列对象。
* 当需要添加具体的产品系列时,只需要增加具体产品角色类,以及对应的产品工厂类即可。
*/
public interface ComputerFactory {
Monitor createMonitor();
Cpu createCpu();
}
具体工厂类IbmComputerFactory
/**
* 作者:created by storm
* Ibm系列产品工厂
*/
public class IbmComputerFactory implements ComputerFactory {
@Override
public Monitor createMonitor() {
return new IbmMonitor();
}
@Override
public Cpu createCpu() {
return new IbmCpu();
}
}
具体工厂类IntelComputerFactory
/**
* 作者:created by storm
* 英特尔产品系列工厂
*/
public class IntelComputerFactory implements ComputerFactory {
@Override
public Monitor createMonitor() {
return new IntelMonitor();
}
@Override
public Cpu createCpu() {
return new IntelCpu();
}
}
以上是关于设计模式抽象工厂设计模式的主要内容,如果未能解决你的问题,请参考以下文章