企业网站建设基本思路,html实例,seo引擎搜索入口,海北营销网站建设公司1. 什么是抽象工厂#xff1f;
提供一个创建一系列相关或互相依赖的对象接口#xff0c;而无需指定它们的具体类。
抽象工厂是一个超级工厂#xff0c;是其他工厂的工厂#xff0c;或将简单工厂进一步抽象。
这样来理解#xff1a; 我们将科技公司可以做的事情简要枚举…1. 什么是抽象工厂
提供一个创建一系列相关或互相依赖的对象接口而无需指定它们的具体类。
抽象工厂是一个超级工厂是其他工厂的工厂或将简单工厂进一步抽象。
这样来理解 我们将科技公司可以做的事情简要枚举出来生产手机、电脑、路由器等等比如小米、华为、联想等公司都可以生产这些产品。
这里我们就可以将科技公司可以生产的产品全部在一个接口中枚举出来这个接口就可以看作一个抽象工厂。而小米、华为、联想这些公司就是普通工厂。抽象工厂将普通工厂可以生产的产品进行抽象出来。
这里有两个概念产品簇、产品级
产品簇或许称之为“产品系”会更便于理解比如小米生产的手机、电脑都是小米系列的这就是一个产品簇。产品级或许称之为“产品类”会更便于理解手机和手机就是一个产品级它们都是同一类商品都是手机。
2. 代码示例
定义普通工厂的抽象工厂
// 抽象工厂抽象方法为科技公司可以生产的产品
public interface ProductFactory {// 可以生产手机产品簇PhoneProduct phoneProduct();// 可以生产电脑产品簇ComputerProduct computerProduct();}定义普通手机工厂
// 产品级
public interface PhoneFactory { ... }
定义普通电脑工厂
// 产品级
public interface ComputerFactory { ... }定义小米生产手机
public class XiaoMiPhone implements PhoneFactory{ ... }定义小米生产电脑
public class XiaoMiComputer implements ComputeFactory{ ... }定义小米工厂在这里实现抽象工厂
// 小米工厂要实现抽象工厂抽象工厂就是将工厂可以做的事情抽象出来具体行为由子工厂去定义
// 其实这里就是一个简单工厂所以抽象工厂就是对简单工厂的抽象
public class XiaoMiFactory implements ProductFactory {// 小米可以生产手机public PhoneProduct phoneProduct(){return new XiaoMiPhone();// 在这里创建对象但是具体行为在子类中}// 小米可以生产电脑public XiaoMiComputer xiaoMiComputer(){return new XiaoMiComputer();}
}客户端
XiaoMiFactory xiaoMiFactory new XiaoMiFactory();
xiaoMiFactory.phoneProduct();//创建手机的实例
xiaoMiFactory.xiaoMiComputer()//创建电脑的实例3. 小结
抽象工厂的本质就是选择产品簇的实现。