简言之,客户需要产品时找工厂要,而不是客户自己要产品。前者客户只需要 "向工厂申请产品"的接口,后者客户需要"申请产品1", "申请产品2"等多个接口。
工厂模式体现了程序设计中的:
不知名原则:
要素:具体工厂类,抽象产品类,具体产品1类,具体产品2类。
刹车 等虚函数;生产车辆 的方法,根据传入参数,决定生产的产品类型。客户使用时需要:
汽车工厂对象 ;汽车工厂对象 调用 生产车辆 的方法 (传入参数为 福田时,汽车工厂.生产车辆("福田"));福田车对象 ; 在"简单工厂模式"中,汽车工厂类 过于抽象,随着产品种类的增加,汽车工厂类中的生产车辆方法将变得十分臃肿。如果有 福田车工厂类,广汽车工厂类更好,这样一个工厂生产一种汽车,增加一种汽车就增加对应工厂生产它。于是改进为:
客户使用时需要:
汽车工厂类对象初始化为福田车工厂还是广汽车工厂;福田车工厂对象 调用 生产车辆方法;福田车对象; 在"工厂方法模式"中,每增加一种具体产品,就增加一种具体工厂,开发成本大。但是抽象工厂模式不是为了解决这个问题滴(我是这么理解的,欢迎纠错)。比如 我想买 巧克力饼干,希望有一个巧克力饼干工厂,这个工厂同时依赖巧克力类,饼干类(前两种模式中工厂只依赖一种产品类,此处依赖多种产品类),提供生产巧克力和生产饼干的接口。
客户使用时需要:
巧克力饼干工厂对象;生产巧克力和生产饼干的接口;巧克力对象和饼干对象;原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。