设计模式--抽象工厂模式
Posted caoxt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式--抽象工厂模式相关的知识,希望对你有一定的参考价值。
工厂模式:是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
主要解决:主要解决接口选择的问题。
优点 :具体类的创建实例过程与客户端分离,客户端通过工厂的抽象接口操纵实例,客户端并不知道具体的实现是谁。
缺点:如果产品族中需要增加新的产品,则也需要修改抽象工厂和所有的具体工厂。
抽象工厂模式的使用场景:
一个系统不依赖于产品线实例如何被创建、组合和表达的细节。
系统中有多于一个的产品线,而每次只使用其中某一产品线。
一个产品线(或是一组没有任何关系的对象)拥有相同的约束。
实例:我们现在有这么一个场景,要求有不同的形状,每一种形状有不同的颜色,比如圆形,我们要求红色的圆形、赤橙黄绿青蓝紫等各种各样颜色的圆形。
<?php interface shape{ static public function circle(); static public function rectange(); } class redShape implements shape{ static public function circle(){ return new redCircle(); } static public function rectange(){ return new redRectange(); } } class blueShape implements shape{ static public function circle(){ return new blueCircle(); } static public function rectange(){ return new blueRectange(); } } //创建实例 class blueCircle{ public function getName(){ echo ‘蓝色圆形‘; } } $factory=blueShape::circle(); $factory->getName();
以上是关于设计模式--抽象工厂模式的主要内容,如果未能解决你的问题,请参考以下文章