PHP头条
热点:

PHP五种常用的设计模式——工厂模式


一直对设计模式有一种敬畏之心,每次想要看设计模式的时候就会想到Erich GammaRichard HelmRalph JohnsonJohn Vlissides的黑皮《设计模式》,基本都望而止步,要把那本书看完可不是一时半会的,而且在没有项目经验的情况下,个人感觉基本都是纸上谈兵。

今天在IBM Developerworks上看到一篇文章将PHP中常用的五种设计模式,感觉还不错,而且只有五种五种五种(重要的强调三遍)!先从简单的入手,把这五种消灭了再说。以后慢慢学习其他的设计模式。

工厂模式(Factory Pattern

工厂这个词的使用是非常形象,字面意思可以这样认为,这种模式下,我们有一个工厂,这个工厂生产很多一种或者几种产品(其实多种的情况是覆盖了一种的),但是每个产品怎么生产和包装的我们不知道,其实我们也不需要知道,知道的越多你就越迷糊,以后你的行为就受制于太多杂事,也就是我们常说的耦合度太高,因此我们就将所有的事情交给工厂负责,我们只用告诉工厂需要什么,工厂把产品交付给你就是了。一旦产品的工艺发生改变,工厂负责就好,你使用该产品的工艺不受影响。因此工厂模式可以大大的降低系统的耦合度,增强系统的稳定性,当然也会提高代码的复用率。

在实际的程序设计中,工厂相当于一个对外的接口,那么这个接口的返回类型是确定的,那么我们怎么通过这个工厂来生产不同的产品发回给客户呢?很简单,做一个所有产品的“模子”就可以,这个“模子”有每个产品的所有特征,但是不能用,需要具体的产品实现这些特性,就是我们常说的Interface
使用类图表示如下:
title=

PHP的实现
编写一个接口 Product.php
设计一个产品A实现Product接口
设计产品B实现Product接口
建造一座工厂生产产品AB
测试

产品AB已经设计好了,工厂也建好了,下一步就是测试一下这个工厂对的生产能力如何。

factory('ProductA')->getName().PHP_EOL;
echo $factory->factory('ProductB')->getName();

输出结果如下:
title=

 

www.phpzy.comtrue/phprm/46088.htmlTechArticlePHP五种常用的设计模式——工厂模式 一直对设计模式有一种敬畏之心,每次想要看设计模式的时候就会想到 Erich Gamma , Richard Helm , Ralph Johnson , John Vlissides 的黑皮 《设计模式》 ,基...

相关文章

PHP之友评论

今天推荐