/ Android ColorStateList resource

Instantiate particular class based on object value

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) { } } 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 ?


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.