在PHP中养成7个面向对象的好习惯
tUtils::createAddressFormatter($type); return $formatter->format($address->getAddressLine1(), $address->getAddressLine2(), $address- >getCity(), $address->getState(), $address- >getPostalCode(), $address->getCountry()); } private static function createAddressFormatter ($type) { if ($type == "inline") { $formatter = new InlineAddressFormatter(); } else if ($type == "multiline") { $formatter = new MultilineAddressFormatter(); } else { $formatter = new NullAddressFormatter(); } return $formatter; } } $addr = new Address(); $addr->setAddressLine1("123 Any St."); $addr->setAddressLine2("Ste 200"); $addr- >setCity("Anytown"); $addr->setState ("AY"); $addr->setPostalCode("55555- 0000"); $addr->setCountry("US"); echo (AddressFormatUtils::formatAddress("multiline", $addr)); echo("\n"); echo(AddressFormatUtils::formatAddress ("inline", $addr)); echo("\n"); ? > 当然,缺点是只要使用模式,通常就意味着工件(类、文件 )的数量会增加。但是,通过减少每个类中的维护可以弥补这个缺点,甚至在获 得正确的可重用性时反而可以减少工件量。 您是橡皮;我是胶水 具有高度内聚力的 OO 设计被集中并组织到相关模块中。了解 “关注点 ” 对于决定如何紧密地联系函数和类十分重要。 坏习惯:降低内 聚力 当设计的内聚力较低 时,它就不能良好地组织类和方法。意大利面 条式代码(spaghetti code)一词通常用于描述捆绑在一起并且具有低内聚力的 类和方法。清单 10 提供了意大利面条式代码的示例。相对通用的 Utils 类将 使用许多不同对象并且有许多依赖关系。它执行很多操作,因而很难实现重用。 清单 10. 降低内聚力的坏习惯
好习惯: 利用高内聚力 高内聚力 指将相互关联的类和方法分组在一起。如果方法 和类都具有高度的内聚力,则可以轻松地分解整个组而不影响设计。具有高内聚 力的设计将提供降低耦合的机会。清单 11 显示了被较好组织到类中的两个方法 。AddressUtils 类将包含用于处理 Address 类的方法,显示了与地址相关的方 法之间的高度内聚力。同样地,PersonUtils 将包含专门处理 Person 对象的方 法。这两个拥有高度内聚力方法的新类的耦合性都很低,因为可以完全独立地使 用。 清单 11. 高内聚力的好习惯
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |