有人可以分享应该如何设计的方式:
假设我有一些数据模型,它是使用Entries
.
基本上,我有一个抽象类Entry
(或接口IEntry
——这对这种情况来说并不那么重要),并且有这个类的几个实现—— MovieEntry
、、、SoundEntry
等等FoodEntry
……
每一个都是一些数据(url、描述、卡路里数量等)的包装器,并且这些数据在每个相应的类中组合在一起。
现在 - 如果我希望在屏幕上显示条目的数据(比如说电影海报和注释MovieEntry
) - 我应该如何设计呢?
显然,我可以提供另一个接口/抽象类并调用它DrawableEntry
(它会继承Sprite
),然后构建一堆类DrawableMovieEntry
,DrawableSoundEntry
如下所示:
class DrawableMovieEntry extends DrawableEntry { // which also extends 'Sprite'
private movieEntry:MovieEntry;
public override function draw(backend:*) {
// Draw everything using the 'movieEntry' reference
// stored.
};
但这对于小型应用程序来说似乎有点过头了。
另一种方法是使MovieEntry
, SoundEntry
, ... 扩展 sprite 并自己提供绘图实现 - 但这显然很糟糕,因为数据与其可视化例程紧密耦合。
那么 - 这应该怎么做呢?也许 MVC 方法可以为这种情况提供一些东西?