PHP杂谈《重构-改善既有代码的设计》之三重组数据
思维导图
在上面的PHP杂谈《重构-改善既有代码的设计》中介绍重组你的函数和继续重构的内容。本章重点介绍数据重建。1、辩论之声——直接访问字段或通过函数(Accessor)访问字段
。
2.将数组修改为对象:当您看到数组看起来像数据结构时,可以使用“用对象替换数组”将数组变成对象。3354的数据结构更清晰。
技术术语访问器:访问者,内存——翻译为“函数”dumb: dumb域类:用于处理业务逻辑表示类:用于处理“数据表示”业务逻辑:业务逻辑单向:单向:双向集合:集群。自封装字段条件:如果客户端直接访问值字段,客户端与值字段之间的耦合关系将逐渐变得笨拙,因此请为此值字段设置值/设置函数,并仅使用这些函数进行访问。
动机:
“间接访问变量”:支持更灵活的数据获取方式,比如lazy Initialization(意思是只有当一个值被使用时,它才会被初始化。)“变量直接访问”:代码易读,不用停下来说“啊,这只是一个值函数”。选项:1。代码规范,按照团队大多数人的做法。2.个人更喜欢“直接访问变量”,直到这种方式带来麻烦。Martin的例子:您想要在超类中获取字段,但是您想要在子类中将字段更改为计算值,所以您应该使用Self Encapsulate Field。我自己的例子:我通常将字段设置为私有。如果外部变量需要使用这个字段,我将使用自封装字段。或者当字段值发生变化时,使用自封装字段。用对象条件替换数据值:如果基本类型的字段需要额外的数据和行为,请将该字段转换为对象。
动机:
在开发之初,我们可能会使用基本的数据类型来表示简单的行为。例如,您可以使用字符串来表示电话号码,但随后可能会出现一些特殊行为,如“格式化”、“验证”和“提取区号”。这个时候,我们需要一个新班级。用对象替换数组:你有一个数组,数组中的元素代表不同的东西,所以用对象替换数组,数组中的每个元素都用一个值字段来表示。
动机:
数组通常用于一组相似的对象。如果数组中的元素不同,就很难理解数组中第一个元素是人名的约定。对象不同,这样的信息可以通过值字段的名称和函数的名称来传递。3354所以没必要死记硬背和评论。封装字段状态:如果类中有公共值字段,将其声明为pirvate并提供相应的访问函数。
动机:
面向对象的原则之一是封装或“数据隐藏”。根据这个原始测试,您永远不应该将数据声明为公共的。——公开数据被认为是一种不良做法。如果封装3354,修改代码会更容易,因为它们都集中在一个地方。函数除了访问函数(获取/设置)之外,不提供其他行为,它毕竟只是一个哑类。这个类无法获得对象技术的优势。3354中解决哑类的方法是通过move方法将哑类轻快地移动到新对象。结语希望和大家分享我的理解,欢迎大家提出宝贵意见。
版权声明:PHP杂谈《重构-改善既有代码的设计》之三重组数据是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

















