我是一些产品的所有者,在那里,我有不同的客户使用该产品,并且该产品的属性改变了我的客户在我的页面上的体验。
举个例子,让我们说客户端有一个名为"product1“的键,它将生成一个带有值的”产品“对象
Product:
{
"id": product1,
"someCrazyTechincalAttribute": 12.50,
"someOtherCrazyTechnicalAttribute: 100
}因此,我们有一个Web,它允许客户更改他们的产品。但是,我们不希望将客户端暴露在所有这些属性上,因为它们对客户完全没有任何意义。此外,技术属性的组合可能最终导致单个用户体验。例如,如果客户想要他们的产品有一个红色,这两个疯狂的技术属性将不得不受到影响。我们想通过不公开我们产品的技术细节来隐藏对客户的技术抽象。
我知道我们可以在UI中有静态规则来为我们执行映射。然而,我们并不认为添加静态规则会让Product轻松地添加属性。
有一个好的软件工程方法来处理这样的问题吗?任何帮助都将不胜感激!
发布于 2017-03-25 15:30:25
如果我完全理解,您的问题是关于模型对象中的技术属性与对象视图中的非技术属性之间的映射:

因此,您可以在客户端使用映射对象,而不是在模型中的属性和视图中的属性之间进行直接映射,这将处理这个映射。视图将与映射对象交互,后者将与控制器、演示者和模型交互。
使用这种逻辑,您可以使用动态映射规则:
如果您使用的不是表映射,则使用规则引擎。这最好在服务器端以面向对象的方式实现:如果规则很复杂,需要编码,您可以将规则实现为类,并派生新的类。
发布于 2017-03-23 23:53:27
单个ui功能可能需要多个不同的属性设置。
正如您所认识到的,我们希望将特性与实现分开。
与编码的其他方面一样,我们希望提供一个域相关的抽象,其实现被封装或隐藏。
我建议显示ui可以用来与后端通信的适当的特性抽象,并将特性映射到后端的内部属性。
https://softwareengineering.stackexchange.com/questions/344739
复制相似问题