I have classes for each payment mode for e.g. Cash, Cheque, Card. I have to pass object as a parameter based on object value I have to instantiate a relevant class.
How can I achieve this? Suggest me a better design
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);}You could pass an enumeration (Cash/Cheque/Card) into a factory ?
e.g.
Payment p = PaymentFactory.newInstance(PaymentMode.Cash);
and within that method you would do:
switch(mode) { case PaymentMode.Cash: return new CashPayment(); // ...}where CashPayment, ChequePayment etc. are subclasses of Payment.
No comments:
Post a Comment