扫码阅读
手机扫码阅读

面向对象中的主体客体思维

345 2024-08-28

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:面向对象中的主体客体思维
文章来源:
TechLead 少个分号
扫码关注公众号

文章摘要

01 为什么面向对象难以理解?

面向对象编程(OOP)是软件开发中的一个主流方法,但许多软件工程师即便有多年经验也难以充分掌握。这部分是因为OOP需要对现实业务进行抽象,涉及深层次的哲学认识论。面向对象编程与近代哲学密切相关,特别是涉及“主体”和主客体关系的概念。这种逻辑同样适用于现代英语语法和现代法律,例如英语中的语句结构和法律中的民事主体与民事客体。在编程中,理解主客体关系有助于更好地应用OOP,如在OrderService例子中,OrderService作为业务主体,而Order、User和Product作为业务客体。

02 指导业务分析

主体和客体的思维方式可以应用于软件需求分析,其中不同的用户角色可视为主体,而软件本身则是客体。这种思维方式可以帮助评估和改进产品经理的工作,例如通过区分主体、行为和客体来定义不同的用例,绘制流程图,设定权限,并使用角色和用户组来描述主体的不同。

03 指导业务建模

在业务建模方面,主体和客体思维同样有益。模型是业务概念在程序中表现,可以帮助理解复杂事物。建模通常侧重于客体模型,但也会有主体模型的建立。应用这种思维进行建模时,可以更清晰地划分模型的目标,并通过UML或E-R图来表达模型。建模时应注意对主体和客体的划分,尤其是在处理集合类名词时。

04 指导架构设计

主体和客体的思维方式也可以用于指导架构设计,如MVC、三层架构和DDD四层架构。在MVC中,Controller、Model和View分别可以看作主体和客体。在DDD中,UI层、Application层、Domain层和Infrastructure层均有主体和客体的存在,且各层之间的主体和客体关系各不相同。这种思维方式有助于理解架构设计中的不同层次,并为这些层次命名。

05 指导代码实践

主体和客体思维还可以用于代码实践,如方法和变量的命名。模拟自然语言中的主语、谓语、宾语结构,可以编写出更加规范和直观的代码。这种策略可以帮助开发者编写出清晰易懂的代码,如作者所举的Tomcat配置下发中间件例子,其中ConfigManager、ConfigPosterInterface和Config作为主体和客体。

想要了解更多内容?

查看原文:面向对象中的主体客体思维
文章来源:
TechLead 少个分号
扫码关注公众号

一线开发 TechLead,讨论系统设计技术方案和技术管理,原名《DDD和微服务》。

109 篇文章
浏览 24.7K
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线