在我目前的任务中,我必须计算理想值 这个价格的计算方法是取这个产品的所有价格,去掉2个最高价和2个最低价,然后对其余价格做一个平均值并加20%。
我有我的域类
class Product {
String store
String product_code
int price
String notes..........
使用策略模式计算理想价格是可行的吗?
值如何在视图中结束?...当控制器工作时?
答案 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)