2

我为每种付款方式开设了课程,例如Cash,,。我必须根据对象值将对象作为参数传递,我必须实例化一个相关类。ChequeCard

我怎样才能做到这一点?给我一个更好的设计

public interface CollectionInfo {
    //Code Goes here
}

public class Cash implements CollectionInfo {
    //Code goes here
}

public class CollectionFactory {
    public void newInstance(Enum<CollectionMode> collectionMode) {
    }
}

public interface Receipts {
    public Receipt createReceipt(String Amount, /*(Here i need to pass parameter of object either cash ,Cheque or card),*/Date date);
}
4

2 回答 2

6

您可以将枚举(现金/支票/卡)传递给工厂吗?

例如

Payment p = PaymentFactory.newInstance(PaymentMode.Cash);

在该方法中,您将执行以下操作:

switch(mode) {
   case PaymentMode.Cash:
      return new CashPayment();

   // ...
}

其中CashPaymentChequePayment是 的子类Payment

于 2013-07-09T09:37:50.893 回答
2

可以看一下工厂模式:

http://en.wikipedia.org/wiki/Factory_method_pattern

于 2013-07-09T09:37:56.797 回答