2012-05-01 48 views
1

我想知道,应该放置哪些通用(或util函数)?我应该在哪里放置util函数 - OOP最佳实践

例如:刚开paymentList

public class Credit { 
    private Integer _duration;    
    private Double _interestRate;   
    private Integer _creditSum;  
    private PaymentStream _paymentStream; 
    private Date _openDate;   
} 

PaymentStream impements策略模式。

问题: 我有construnctor(duration,interestRate,creditSum,paymentStream,openDate)。但我也希望跟随着功能:

  • getCreditDuration(creditSum,monthlyPayments,的InterestRate)
  • getCreditSum(montlyPayment,的InterestRate,持续时间)

显然,他们不能上信用实例,因为我没有足够的信息给构造函数。那么他们应该放在哪里?

添加:我还需要将所有计算(getCreditDuration等)存储到数据库中。所以,如果这是返回double(int)的静态函数,我无法将它们存储到数据库中。我应该保存什么对象?

要求是:用户可以选择持续时间计算和信用额度计算(等)。有单独的计算视图。每次用户点击“计算按钮”计算结果都必须保存到DB中。用户可以看到所有的计算,他可以点击任何项目。

对于离(с装置值的计算):

Sum  Duration Interest Payment 
10000 2 yrs 12%  1000(с) -> opens view to calculate monthly payment 
12000(с) 3 yrs 10%  1200  -> opens view to calculate credit sum 
+0

你的意思是说,每当有人执行这种计算,每一次,没有特殊情况下,一个记录必须写入数据库?似乎很奇怪的要求。我的直觉是持久性(例如出于审计目的)属于一个独立的类,它调用了这些静态方法。请详细解释您的需求,也许我们可以找到更好的答案 – djna

+0

传递一个对象进行协作,从而提供您需要的功能。 –

回答

2

它们是无状态的方法,其逻辑清楚地绑信用对象的概念(关于他们工作的所有数据作为参数被传递)。所以有一种可能性就是让它们成为Credit类的静态方法。

+0

你可以让它们成为非成员函数,把它们放在cpp文件的匿名命名空间中,而不是混淆类声明。 –

相关问题