我看到它经常重复,面向对象的编程是建立在对现实世界建模的基础上的,但它是吗?
在我看来,在业务层之外的任何事情都不是这样的。我的GUI类/数据访问类没有在现实世界中建模。即使在我的业务层,我也有观察员、经理、工厂等类,这些类不是真实世界的对象。我试图设计我的类来利用诸如封装之类的东西,但是现实世界是否封装了呢?
虽然我创建的一些对象是对现实世界的对象建模,但OOP之前的代码是否也会这样做呢?我怀疑OO是第一个将客户这样的概念包含在他们的代码库中的人。但是OO实际上是关于如何建模的,在我看来,这种建模方法并不受现实世界的启发。
那么:面向对象的编程真的能模拟现实世界吗?
发布于 2012-03-02 14:43:47
然而,这是一种方法,它允许创建一个很好的抽象来保存复杂的数据结构以及一些对数据结构起作用的方法。
发布于 2012-03-02 14:45:20
任何类型的模型,都不是真实世界的模型,也不是全部。
他们对选定的部分进行建模,这些部分与手头的应用程序相关。
你在说什么(观察员、经理、工厂等)是一种基础设施,它可以帮助您获得正确的抽象和支持所需的函数,如持久性。
发布于 2012-03-02 16:15:59
什么是模型,无论如何:
模型是一种简化的表示法,用于解释真实世界系统或事件的工作原理。
面向对象编程允许您对真实世界建模吗?
要建立与现实世界完全匹配的系统模型几乎是不可能的。
我是否总是要按照真实世界来对软件进行精确建模?
话虽如此,你可以为每件事建模并不意味着你必须为每件事建模。实际上,有用的建模的本质是表示一个简化的表示。多大程度的简化足以表达当前的业务需求,以及需要省略的是成功地使用该技术还是完全不使用它之间的微妙平衡。
当然,有些实体并不真正存在,但只有通过建模,我们才能很好地概念化。
https://softwareengineering.stackexchange.com/questions/137994
复制相似问题