如何向某人解释数据结构不应该自我绘制,解释关注点的分离?

lee*_*d00 5 oop model-view-controller extends extend separation-of-concerns

我有另一个程序员,我试图解释为什么UI组件也不应该是数据结构.

例如,假设您获得的数据结构包含"数据库"中的记录集,并且您希望在应用程序的UI组件中显示该记录集.

根据这个程序员(他将保持无名,他年轻,我正在教他......),我们应该将数据结构子类化为一个类,它将在我们的应用程序中绘制UI组件!!!!!!

因此,根据这个逻辑,记录集应该管理UI的绘制.

******总班台*****

我知道要求一个记录集来绘制它本身是错误的,因为如果你想在UI上的多种类型的组件上呈现相同的数据结构,那么你的手上就会有一个真正的混乱; 你需要为你从记录集的基类渲染的每个UI组件扩展另一个类;

我很清楚MVC模式的"清洁度"(并且我真正的意思是你不要把你的数据(模型)与你的UI(视图)或发生在你身上的行为混淆数据(控制器或多或少......好吧,不是真的API应该真正处理它......控制器应该尽可能少地调用它,告诉它要渲染哪个视图))但它确实更清洁而不是使用数据结构来呈现UI组件!

除了上面的例子之外,还有其他建议吗?我明白,当你第一次学习OOP时,你会经历"一个阶段",在那里你只需要扩展一切.

接下来是一个阶段,当你认为设计模式是每个问题的解决方案时......这也不完全正确...... 谢谢杰夫.

有没有办法可以轻轻推动这个孩子朝着正确的方向前进?你有更多的例子可以帮助解释我对他的观点吗?

Mar*_*ams 4

你听说过马丁·福勒吗?

分离用户界面代码

无论如何,如果他想进一步向数据控件添加渲染方法,请让他看看“松散耦合”。创建一些通用类型的界面可以让他完成一半,但 UI 组件应该完成剩下的部分。