面向对象思想

面向对象思想为软件设计与开发赋予了哲学的意义。在哲学的世界里,小至沙粒微尘,大至日月星辰乃至宇宙,均可视为单独的个体对象而存在。如果以哲学的目光凝视程序的世界,又何尝不是如此?一个用户,一种销售策略,一条消息,或是某种算法,一个Web的网页,面向对象思想均将其看作为一种对象。而每一种对象,都有其单独的生命周期,谁来创建它,谁来销毁它,它的内在属性,表现行为,以及它与外界之间的关系和集合,无不具有某种哲学的意味。我们在定义对象时,就好比是在描述一个活生生的事物,需要定义该对象的自然属性和社会属性,限定它的内涵与外延,勾勒出该对象的社会关系。而对于抽象、多态与封装,则是一种形而上学的概念,它将面向对象技术推向为思想的境界。

因此,我们在运用面向对象思想来定义对象时,就必须从思想的高度上俯瞰它,同时又必须结合现实来描述它。两者之间并没有绝对的矛盾。

所谓思想的高度,就要求我们必须理解所谓面向对象思想的精髓,并通过运用诸如设计模式、对象法则等知识,并从软件架构的角度出发,高屋建瓴地勾勒出整个软件结构的全貌。说得玄一些,就颇有几分“超然物外”的感觉。

所谓结合现实,也即是说对象离不开其依存的环境,毕竟软件设计不可能达到完全抽象的境界。从软件工程的角度来看,就是在设计时,需结合客户的需求、具体的业务来综合考虑。怎么界定对象的边界?对象的属性和行为是什么?哪些需要封装,而哪一些又需要暴露接口?有时候,业务才能决定设计的一切,如果纯为设计而设计,只能是空中楼阁,并不能搭建出扎实的建筑来。
posted @   张逸  阅读(5546)  评论(10编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示