Question: 2 . Open / Closed Principle ( OCP ) : Make the PaymentProcessor open for extension ( for handling different payment methods ) but closed
OpenClosed Principle OCP:
Make the PaymentProcessor open for extension for handling different payment methods but closed for modification.
@startuml
interface PaymentValidator
validatepayment: Payment: boolean
interface PaymentPersister
persistpayment: Payment: void
interface PaymentMethodProcessor
processPaymentpayment: Payment: void
class PaymentProcessor
validator: PaymentValidator
persister: PaymentPersister
methodProcessor: PaymentMethodProcessor
processPaymentpayment: Payment: void
class CreditCardProcessor implements PaymentMethodProcessor processPaymentpayment: Payment: void
class PayPalProcessor implements PaymentMethodProcessor processPaymentpayment: Payment: void
class Payment
amount: double
customerId: String
paymentMethod: String
PaymentProcessor PaymentValidator
PaymentProcessor PaymentPersister
PaymentProcessor PaymentMethodProcessor
@enduml
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
