设计理念-数组的褒与贬

对于PHP开发者来说,数组是非常舒服的一种数据结构,方便,自由,灵活。但是这种数据结构对于以PHP为入门语言,并且一直从事PHP开发的一类开发者来说,并不是好事,他们会缺少针对属性,实体相关的设计思路,认为一切皆数组,如下图《PHP数组传递》。严格的数据类型,整齐的数据类型约束,他们不会理解,并且很难赞同,如下图《c#实体》。

优秀的设计思想应该是应该以对象的角度看待事物,分析业务,而不是临散的属性,随意的数组。而你在附属于框架,服务于业务时,势必要做些妥协。

PHP数组传递

之前在阅读go语言代码时,发现go语言中的结构体和C#语言中的实体使用思路有很大相似之处。

c#实体

层次之间参数传递

层次之间参数传递集中反映了数组与对象的差别

按照PHP开发者经验和习惯,层次之间传递的是数组,优点自然是方便,灵活,缺点是对于方法签名来说缺少固定的业务语义约束,不明确。

按照Java或者c#严格面向对象语言开发者的经验习惯,层次之间传递的是对象或者实体,实体可以作为容器在层次之间传递,而没有层次给予的职责约束。也就是在传统的三层开发模式中,任何一层都可以使用实体,实体包装的是对象属性。

关于实体和模型的区别不在这篇文章的讨论范围内,后续我会单独写文章叙述这两个概念以及用法的区别。

以免引起语言争论,这里补充一个观点,语言之间各有所长,应该使用到最适合的场景上。应该看到每种语言的优势,而不是做无谓的比较

原文发布于微信公众号 - 图南科技(tunan_technology)

原文发表时间:2019-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券