工厂模式与抽象工厂模式
当添加产品类后,如果采用简单工厂模式,必须修改工厂类,这时比较理想的方法 是采用工厂模式。
在工厂模式中,增加了一个工厂抽象类,由这个抽象类可生成多个具体工厂类,针对新增加的具体产品类,不必修改已有的工厂类,只需增加一个具体工厂类,这就是工厂模式比简单工厂模式先进的地方。
工厂模式中的类一般是这样的:
一个抽象产品类,多个具体产品类
一个抽象工厂类,多个具体工厂类
当添加具体产品类时,不必修改已有的工厂类,只需增加具体工厂类,在具体工厂类中,与简单工厂模式一样,一般只有一个静态工厂方法。
来个比喻:
一个农场中由一个人来管理农场中的所有产品,这就是简单工厂模式,这种模式只适合小的农场。
当农场规模扩大后,一个人来管理显示不合适,这时就需要多个人来管理,相当于有多个具体工厂类,每个人管理不同的产品,如张三管理大白菜,李四来管理苹果...
如果农场进一步扩大,比如大白菜这个品种,有北方的大白菜,有南方的大白菜,或者更多,其它的产品与大白菜类似,分成许多地域的品种,这时就要采用抽象工厂模式。
农场的抽象工厂模式:
一个抽象产品类,用来管理南方的产品,包括大白菜等
另一个抽象产品类,用来管理北方的产品,包括大白菜等
或者有更多
一个抽象工厂类,多个具体工厂类,其中一个专门管理各地的大白菜,其它类似
工厂模式与抽象工厂模式 简单比较 例子
最新推荐文章于 2024-08-01 20:10:37 发布