Grails的战略模式

时间:2016-02-23 01:05:32

标签: grails strategy-pattern

在我目前的任务中,我必须计算理想值 这个价格的计算方法是取这个产品的所有价格,去掉2个最高价和2个最低价,然后对其余价格做一个平均值并加20%。

我有我的域类

class Product { 
  String store
  String product_code
  int price
  String notes..........

使用策略模式计算理想价格是可行的吗?

enter image description here

值如何在视图中结束?...当控制器工作时?

1 个答案:

答案 0 :(得分:2)

当然,Grails不会阻止您使用策略模式。这是基本的策略

def prices = Product.withCriteria {
    projections {
        property 'price'
    }
}

def remaining = prices - prices.take(2) - prices.takeRight(2)
def ideal = remaining.sum() / remaining.size() * 1.2

所以它等于GORM query来获得价格,一些GDK Iterable方法和数学。你当然可以把它捆绑成一个策略模式,BTW可以在带有闭包的Groovy中完成;你不需要使用接口等传统路线:

def idealPriceStrategy = { prices ->
    def remaining = prices - prices.take(2) - prices.takeRight(2)

    return remaining.sum() / remaining.size() * 1.2
}

def myStrategy = idealPriceStrategy
def ideal = myStrategy(prices)