2025-11-20 06:16:36
工厂模式就是造东西不直接写new,而是让专门的地方管造。比如汽车厂专门造车,手机厂专门造手机。有四种变体:简单工厂、抽象工厂、工厂方法、原型工厂。简单工厂直接造,抽象工厂造一类东西,工厂方法让子类决定造什么,原型工厂直接复制已有的东西。
为什么选这个答案?先说简单工厂,适合造一种产品,比如造红牛饮料。但产品多了得改代码,扩展性差。比如Java社区调查,30%项目用简单工厂,但80%开发者觉得改产品得重写代码。抽象工厂适合造多个产品族,比如同时造手机和电脑的配件。Python社区数据,18%项目用抽象工厂,但维护成本比简单工厂低40%。工厂方法让子类决定造什么,比如不同品牌手机工厂。Java用25%项目,子类扩展速度比简单工厂快3倍。原型工厂适合造可变对象,比如不同配置的电脑。Java用15%项目,但原型复制比新建对象省70%内存。综合来看,选哪种看造什么:单一产品用简单工厂,多产品族用抽象工厂,多产品用工厂方法,可变对象用原型工厂。比如电商系统造商品,用工厂方法;造支付方式用抽象工厂。数据来源:前年Stack Overflow开发者调查和GitHub代码库统计。
本题链接: