首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏对象的技术抽象,不需要静态规则

隐藏对象的技术抽象,不需要静态规则
EN

Software Engineering用户
提问于 2017-03-23 00:37:36
回答 2查看 75关注 0票数 0

我是一些产品的所有者,在那里,我有不同的客户使用该产品,并且该产品的属性改变了我的客户在我的页面上的体验。

举个例子,让我们说客户端有一个名为"product1“的键,它将生成一个带有值的”产品“对象

代码语言:javascript
复制
Product: 
{
    "id": product1,
    "someCrazyTechincalAttribute": 12.50,
    "someOtherCrazyTechnicalAttribute: 100

}

因此,我们有一个Web,它允许客户更改他们的产品。但是,我们不希望将客户端暴露在所有这些属性上,因为它们对客户完全没有任何意义。此外,技术属性的组合可能最终导致单个用户体验。例如,如果客户想要他们的产品有一个红色,这两个疯狂的技术属性将不得不受到影响。我们想通过不公开我们产品的技术细节来隐藏对客户的技术抽象。

我知道我们可以在UI中有静态规则来为我们执行映射。然而,我们并不认为添加静态规则会让Product轻松地添加属性。

有一个好的软件工程方法来处理这样的问题吗?任何帮助都将不胜感激!

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2017-03-25 15:30:25

如果我完全理解,您的问题是关于模型对象中的技术属性与对象视图中的非技术属性之间的映射:

因此,您可以在客户端使用映射对象,而不是在模型中的属性和视图中的属性之间进行直接映射,这将处理这个映射。视图将与映射对象交互,后者将与控制器、演示者和模型交互。

使用这种逻辑,您可以使用动态映射规则:

  • 表控制映射(例如,将技术产品属性与表值相结合以获得用户属性,反之亦然。
  • 基于公式的映射(例如,从产品属性计算用户属性)
  • 或基于规则的映射(例如,应用转换规则的组合)。

如果您使用的不是表映射,则使用规则引擎。这最好在服务器端以面向对象的方式实现:如果规则很复杂,需要编码,您可以将规则实现为类,并派生新的类。

票数 1
EN

Software Engineering用户

发布于 2017-03-23 23:53:27

单个ui功能可能需要多个不同的属性设置。

正如您所认识到的,我们希望将特性与实现分开。

与编码的其他方面一样,我们希望提供一个域相关的抽象,其实现被封装或隐藏。

我建议显示ui可以用来与后端通信的适当的特性抽象,并将特性映射到后端的内部属性。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/344739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档