当前位置:  开发笔记 > 编程语言 > 正文

业务逻辑依赖于模型属性

如何解决《业务逻辑依赖于模型属性》经验,为你挑选了1个好方法。

我有一个User具有introduced_by属性的模型.根据该属性值,我以不同的方式计算我的佣金.这样做最好,最灵活的方法是什么?

我应该进行切换,还是将所有内容放在平面文件中?另外,我应该创建一个Commission模型吗?



1> Simone Carle..:

这是一个非常广泛的问题,因为没有代码也没有例子.然而,它似乎是Strategy设计模式的完美案例.

我要做的是创建一个表示每个特定属性值范围的策略的类.

例如

PersonalCommission
CompanyCommission
HighValueCommission
DefaultCommission

每个类都有一个方法,假设calculate您可以调用传递对象的实例并返回佣金的值.

无论您何时需要执行计算,只需Commission根据User属性初始化新的策略对象并对其进行调用calculate.

您甚至不必使用开关,因为您可以动态初始化类.

strategy = "#{user.introduced_by}Commission".constantize
strategy.new.compute(whatever)

当然,这只是一个非常简单的例子,你必须适应你的需求.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有