
在今天下午的一个小组的项目审查会议上,这位同事谈到了使用DDD重建三个模块的问题. 服务层中的某些业务逻辑沉入了域层,而讨论则引起了它.
部门经理: “实际上,您的业务逻辑并不缺乏,但是界限已经重新定义. ”

一起参与开发的同事: “在第二个模块(任务系统,包括任务拆分,状态跟踪等)中,这种想法很有优势,在一个或三个项目中并不十分明显.
然后我被问到一个问题: “究竟什么是面向对象的,什么是面向过程的,在什么情况下适合于面向对象,什么情况下适合于面向过程?”

以C语言和Java语言为例: C语言没有类,但是具有结构. 结构中没有功能面向过程和面向对象,只有属性. 这说明什么?结果表明,在面向过程的思维模式下,数据和操作是严格分开的.
为什么在用C语言调用此函数之前需要定义该函数,也就是说,先声明该函数然后再调用它?如果您根据流程的思想来看这种设计方法,则要调用子流程,则必须在调用之前定义它.

在java类中,函数定义的顺序没有问题,这与面向过程和面向对象的最小定义粒度有关. 面向流程的最小定义粒度是进程(方法,操作,功能),而在对象中,最小定义粒度是对象. 该对象的行为不是按顺序进行的,而是包含在该对象的大容器中.
封装,抽象,继承和多态实际上是对类似对象的建模. 例如,以人为例,人的某些属性不想显示给别人,而某些属性只能被指定的人理解. 这是封装. 掌握的知识实际上是现象的抽象. 人们从父母那里继承了一些生活习惯,但是却有所不同. 这是多态性.

总而言之,子类与父类具有不同的模型(模拟现实世界),这是四种面向对象的最终原因.
为什么面向对象的思维更有利于扩展维护?以工作职位为例. 一个人处于工作岗位. 如果某天对该职位有更多的工作要求,并且变化的幅度很小,那么对该职位人员的技能培训就足够了. 如果需要一个以上的学位,则分为两个人,或分为多个职位. 而且,如果您使用面向过程的方法,那么每次更改都等于一个附加过程吗? (怀疑,多个过程在哪里?维护困难的原因是什么?我不想在这里理解它)
面向过程需要人们有更好的思维方式,而面向对象则需要人们有更好的抽象思维方式. 那么如果有一天有“面向文档的编程”怎么办?要求人们具有更好地表达问题的能力. 换句话说,面向过程是面向过程的思想,面向对象是面向模型的思想.
最后,如果我们描述了入职过程,那么Daniel的入职过程可能与新生的入职过程完全不同. 如果将入职行为写入员工的方法中,那么这就是面向对象的方法. 如果您保留了入职流程的方法,请根据不同的人使用切换
跳转到不同行为的案例方法,然后它是面向过程的.
面向过程是面向过程的思维面向过程和面向对象,而面向对象是面向模型的思维.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-222504-1.html
活蛆不可能死蛆呢
指挥部才最后确认飞机已经全部安全落地
小王子加油