【问题标题】:How to relate Customer and Payment Details如何关联客户和付款详情
【发布时间】:2010-02-23 09:50:03
【问题描述】:

我有一个与对象之间的关系有关的查询。

场景:

付款详情 - 一个。信用卡 湾。储蓄账户 C。支票

现在,客户在购买任何产品之前都应该知道上述任何付款明细。我如何将付款明细与客户联系起来。

谁能举例说明...

提前致谢。

【问题讨论】:

  • 您知道付款详细信息可能应该与交易/发票相关联,因为同一客户可能有多次付款,或者以多种部分方式支付同一张发票。
  • 正确,我关心的是如何将付款细节与交易或发票联系起来。

标签: c# java oop


【解决方案1】:
public interface IPaymentType 
{
  bool Pay(double amount);
}

public class CreditCardPType : IPaymentType
{
  double limit;
  // implement Pay()
}    
public class Cheque: IPaymentType
{
  int accountNumber;
  // implement Pay()
} 

public class Customer
{
    public IPaymentType paymentType { get; set; }
}


Customer customer = new Customer();
customer.paymentType = new CreditCardPType();

【讨论】:

  • 这对信用卡支付类型有好处,如果是支票,还有什么用。信用卡和支票都有一些不同的属性。
  • 从 IPaymentType 接口派生另外两个类
  • 在界面中定义像 Pay() 之类的行为。将属性与您的类分开。已制作版本
  • 但是我们的接口只有两者的共同属性,客户和支付类型是通过接口关联的。所以我无法获得 Cheque 的所有属性。
  • 为什么要在界面中放属性?
【解决方案2】:

不确定我是否正确地回答了您的问题,也许您可​​以拥有一个具有“modeOfPayment”属性的 Customer 类,这可以是任何可能的选项。在 Customer 类的构造函数中初始化此属性。

或者,将付款详细信息保留在“订单”之类的类中可能是更好的选择。客户可以选择使用信用卡(例如)为订单付款,也可以选择其他方式付款。

【讨论】:

    【解决方案3】:

    向您的客户对象添加付款明细属性\字段。这将是客户购买产品时的默认付款方式。

    【讨论】:

      猜你喜欢
      • 2012-01-04
      • 2012-07-07
      • 2021-01-15
      • 1970-01-01
      • 2023-03-10
      • 2017-02-08
      • 2014-08-09
      • 2014-10-31
      • 2018-01-09
      相关资源
      最近更新 更多