在PHP中养成7个面向对象的好习惯
; ?> 在 环境发生更改之前,从数据库中装入 Person 的代码都可以正常运行。例如,从 数据库装入 Person 可能适用于第一个版本的应用程序,但是对于第二个版本, 可能需要添加从 Web 服务装入人员的功能。其实,该类已经变成 “石头 ”,因为它在直接使用实现类并且现在能做的更改十分有限。 好习 惯:使用接口 清单 7 显示了一个代码示例,在实现了加载用户的新方法 后并没有进行更改。该示例显示了一个名为 PersonProvider 的接口,该接口将 声明单个方法。如果任何代码使用 PersonProvider,代码都禁止直接使用实现 类。相反,它就像是一个实际对象一样使用 PersonProvider。 清单 7. 使用接口的好习惯
在使用接口时,尝 试避免直接引用实现类。相反,使用对象外部的内容可以提供正确的实现。如果 您的类将装入基于某些逻辑的实现,它仍然需要获取所有实现类的定义,并且那 样做也无法取得任何效果。 您可以使用 Factory 模式来创建实现接口的 实现类的实例。根据约定,factory 方法将以 create 为开头并返回接口。它可 以为您的 factory 获取必要的参数以计算出应当返回哪个实现类。 在清 单 7 中,createProvider() 方法只是获取 $type。如果 $type 被设为 database,工厂将返回 DBPersonProvider 的实例。从数据库中装入人员的任何 新实现都不要求在使用工厂和接口的类中进行任何更改。DBPersonProvider 将 实现 PersonProvider 接口并且拥有 getPerson() 方法的实际实现。 利用最弱的链接 将模块松散耦合 在一起是件好事情;它是允许您封装更改 的属性之一。另外两个习惯 — “保持谨慎” 和 “避免 看到美杜莎” — 可帮助您构建松散耦合的模块。要实现松散耦合的 类,可通过养成降低类依赖关系的习惯实现。 坏习惯:紧密耦合 在清单 8 中,降低依赖关系并不是必须降低使用对象的客户机的依赖关系。相 反,该示例将演示如何降低与正确类的依赖关系并最小化这种依赖关系。 清单 8. Address 中紧密耦合的坏习惯
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |