工厂模式-实际应用
前言:
工厂模式一般分为:简单工厂模式、工厂方法、抽象工厂模式;
也有人认为工厂方法是抽象工厂模式的特例,即当抽象工厂模式的工厂只生产一种产品时转变为工厂方法。
注:以下内容借鉴于网络。
一、简单工厂模式
工厂:AbstractLoggerAdapter
产品:logger(日志记录器)
工厂根据参数给出对应的产品,你无需关心产品是如何制造的。
二、工厂方法
抽象工厂(或根据参数)给出具体的工厂,无需关心具体工厂是怎么制造产品的;
且工厂只生产一种产品。
三、抽象工厂模式
抽象工厂(或根据参数)给出具体的工厂,无需关心具体工厂是怎么制造产品的;
且工厂可以生产多种产品;也有说多种产品抽象成一种产品。
总结
简单工厂模式:
食物(抽象产品)售货机(简单工厂),用户按1买猪肉(具体产品1)、用户按2买牛肉(具体产品2)、用户按3买羊肉(具体产品3);
如果继续添加鸡鸭鱼肉;则售货机为了更新程序、增大体积会停止售卖,况且导致程序复杂,用户体验差,机器臃肿等;
工厂方法:
食物(抽象产品)售货机(抽象工厂)分为猪肉(具体产品1)售货机(具体工厂1),牛肉(具体产品2)售货机(具体工厂2),羊肉(具体产品3)售货机(具体工厂3);
如果继续添加鸡鸭鱼肉;则原先的售货机正常运营,只需添加新的鸡肉(具体产品4)售货机(具体工厂4)即可;
抽象工厂模式:
食物(抽象产品)售货机(抽象工厂)分为猪肉(抽象产品1)售货机(具体工厂1),牛肉(抽象产品2)售货机(具体工厂2),羊肉(抽象产品3)售货机(具体工厂3);
这些售货机都可以卖鲜肉类,如鲜猪肉(具体产品1-1),也可以卖肉加工类,如火腿肠肉松等(具体产品1-2);只需把鲜猪肉和火腿肠放到一个售货机里,这样进货也容易,用户买货也容易,不用分别去不同的售货机操作;