PHP面向对象进阶设计模式:工厂模式使用实例

单行、唯一 4     639      服务端   0     1
PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,PHP面向对象进阶设计模式:工厂模式使用实例,

在面向对象的程序中,我曾经见过的最大的switch/case语句所具有的条件超过了20个。在运行期间,这个代码模块每次都要执行所有的条件。每个条件都负责创建一个新的对象,这个对象被用于与应用程序API的外部使用这进行通信。对其中一个执行某些常规的故障处理之后,我开始研究应用程序所实现的接口。令我吃惊的是,switch/case语句中引用的每个类都在实现相同的接口!随后要在switch/case语句中添加新的条件语句时,我建议转而使用工厂模式。


什么是工厂模式?

工厂设计模式提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类的步骤。

随着PHP发展并演变为一种语言,它的功能不断地通过应用经过验证的设计模式来提供简单的开发手段。PHP中一个特别有用的功能是能够创建基于变量内容的类的新实例。这种对象实例化的动态方法是PHP中实现工厂设计模式的一种代码块构建途径。

基于工厂设计模式的类有助于减少主代码流中基于条件的复杂性。在整个应用程序中,调用对象的方式众多而且不同。与某个对象创建相关的任何修改都会影响到应用程序的其余部分。假设实例化5个对象中的其中一个,从而完成某种功能性。创建条件语句来判断实例化的对象是一种方法。条件语句可能是复杂的if/else语句或switch/case语句。这种功能性可以在应用程序中的许多地方使用,但是会导致重复的代码。接下来,如果添加第六个对象或修改现有5个对象其中一个的名称,那么程序代码的所有实例都需要被修改和再次测试。通过提供一个创建上述对象的简单接口,工厂设计模式有助于避免这个令人头痛的问题。无论对象被修改或添加了其他对象,Factory对象的调用方式仍然是相同的。显示博客条目就是显示中的一个实例。

不同对象的创建并不是使用工厂设计模式的唯一目的。使用基于工厂设计模式的类的另一个场合是处理若干项的集合。在这种情况下,对象集合包含相同的基对象,但是每个对象都具有不同的特征。

在需要若干步骤才能确定要创建的对象类型时,我们最好使用基于工厂设计模式的类来检索新的实例。


  
4楼
士大夫大师傅但是 士大夫士大夫似的 士大夫似的
  
3楼
呼啦啦
  
2楼
啦啦啦
captcha
忘记密码? 注册
第三方登录
微信赞赏
支付宝赞赏