protocol EWalletProvider {
func accountID()
func walletProviderID()
}
protocol PaymentProvider {
func paymentName()
func amount()
}
protocol BankProvider {
func bankID()
func virtualAccount()
}
class Gopay : EWalletProvider, PaymentProvider {
func paymentName() {
// Implementation code
}
func amount() {
// Implementation code
}
func accountID() {
// Implementation code
}
func walletProviderID() {
// Implementation code
}
}
class Mandiri : BankProvider, PaymentProvider {
func paymentName() {
// Implementation code
}
func amount() {
// Implementation code
}
func bankID() {
// Implementation code
}
func virtualAccount() {
// Implementation code
}
}
class BNI : BankProvider, PaymentProvider {
func paymentName() {
// Implementation code
}
func amount() {
// Implementation code
}
func bankID() {
// Implementation code
}
func virtualAccount() {
// Implementation code
}
}