我们正在从头开始编写一个应用程序(核心和应用程序,该应用程序是 MVVM)。核心包含一个由块组成的测试对象。我们有大约 30 种不同类型的积木。它们被实现为复合模式——我们有一个抽象块,以及从它继承的叶子和复合块。所有其他类型的块都继承自叶子(如“打印”块)或复合块(如“for”块)。
我的问题是关于连接核心应用程序:应用程序需要呈现测试的树状结构。为此,它应该知道块有哪些参数以及如何呈现它们(可以是 1 个字符串参数、3 个 int、1 个字符串和 1 个只能有 3 个值的 int 等),以及该块是否有子块. 其他一些要求可能会在以后出现。
在我们的 API 中公开我们所有的具体块似乎最简单,将每个块包装在模型中自己的块中,然后使用数据模板将不同的属性绑定到字段。问题是,我们不想以这种方式将我们的核心内部暴露给应用程序。
另一种选择是仅公开抽象块并将实体添加到 API - Presentable Block,它将保存它并保存其参数的一般表示(比如说,参数对象的列表,每个这样的对象都保存所需的信息)。在这种情况下,应用程序必须为每个块解析这样一个列表,我们不确定数据模板的使用——这甚至可能吗?
我会很感激您对这 2 条建议的评论,当然还有新的想法。
谢谢。