设为首页收藏本站language 语言切换
查看: 356|回复: 0
收起左侧

PHP面向对象应该非常注重的哪些“规则”(三)

[复制链接]
发表于 2017-3-30 20:26:53 | 显示全部楼层 |阅读模式
PHP面向对象应该非常注重的哪些“规则”(三)
关于PHP面向对象注意的问题最后一篇,原本我想着直接发一篇,当然也抱着抓眼球的目的,毕竟整理了好久,而大家只是转发一下,或者收藏一下,却没有真正去看里面的内容,反而达不到任何效果。正好,大家看这一片文章的时候可以翻看一下我之前的两篇,这样温故而知新,会有更多的收获的。这种学习方法在兄弟连的时候是经常要用到的,当时上课的模式是:上午集中上课,老师会安排很多的知识点,(www/itxdl/cn)让大家整体有一个学习的框架,下午就是集中练习,将上午的知识全部手动自己亲自做一次,而且项目经理会在班级帮助大家解决遇到的任何问题。然后晚上就是总结与预习,包括继续吸纳知识点的过程。毕竟学习一个新的知识,最好的完全掌握的方法就是能将知识点吃透177<1011<6169。我非常喜欢这种上课方式。至少对我非常的右帮助。
分享继续:
(1) 所有的抽象类都应当是基类。
(2) 所有的基类都应当是抽象类。
(3) 把数据、行为和/或接口的共性尽可能地放到继承层次体系的高端。
(4) 如果两个或更多个类共享公共数据(但没有公共行为),那么应当把公共数据放在一个类中,每个共享这个数据的类都包含这个类。
(5) 如果两个或更多个类有共同的数据和行为(就是方法),那么这些类的每一个都应当从一个表示了这些数据和方法的公共基类继承。
(6) 如果两个或更多个类共享公共接口(指的是消息,而不是方法),那么只有他们需要被多态地使用时,他们才应当从一个公共基类  继承。
(7) 对对象类型的显示的分情况分析一般是错误的。在大多数这样的情况下,设计者应当使用多态。
(8) 对属性值的显示的分情况分析常常是错误的。类应当解耦合成一个继承层次结构,每个属性值都被变换成一个派生类。
(9) 不要通过继承关系来为类的动态语义建模。试图用静态语义关系来为动态语义建模会导致在运行时切换类型。
(10) 不要把类的对象变成派生类。对任何只有一个实例的派生类都要多加小心。
(11) 如果你觉得需要在运行时刻创建新的类,那么退后一步以认清你要创建的是对象。现在,把这些对象概括成一个类。
(12) 在派生类中用空方法(也就是什么也不做的方法)来覆写基类中的方法应当是非法的。
(13) 不要把可选包含同对继承的需要相混淆。把可选包含建模成继承会带来泛滥成灾的类。
(14) 在创建继承层次时,试着创建可复用的框架,而不是可复用的组件。
(15) 如果你在设计中使用了多重继承,先假设你犯了错误。如果没犯错误,你需要设法证明。
(16) 只要在面向对象设计中用到了继承,问自己两个问题:(1) 派生类是否是它继承的那个东西的一个特殊类型?(2) 基类是不是派生类的一部分?
(17) 如果你在一个面向对象设计中发现了多重继承关系,确保没有哪个基类实际上是另一个基类的派生类。
(18) 在面向对象设计中如果你需要在包含关系和关联关系间作出选择,请选择包含关系。
(19) 不要把全局数据或全局函数用于类的对象的薄记工作。应当使用类变量或类方法。
(20) 面向对象设计者不应当让物理设计准则来破坏他们的逻辑设计。但是,在对逻辑设计作出决策的过程中我们经常用到物理设计准则。
(21) 不要绕开公共接口去修改对象的状态。
还是和文章开始说的一样,如果看到对自己有帮助的文章,大家一般都会选择收藏,但是我的建议就是,一定要抽出时间来好好的看下里面的内容。我大学同学收集了几百G的学习视频,但是现在他却去做了一个房产销售。我并不是看不起销售这个职业,毕竟这个是靠嘴的,也是一项技能。只是想说明一个问题,收集不是目的,将知识变成自己的才是我们应该做的。

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-17 03:08 , Processed in 0.346784 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表