// PaymentProcessor クラス(抽象クラス)
abstract class PaymentProcessor {
// 支払ã„を処ç†ã™ã‚‹æŠ½è±¡ãƒ¡ã‚½ãƒƒãƒ‰
abstract void processPayment(double amount);
}
// CreditCardPaymentProcessor クラス(具象クラス)
class CreditCardPaymentProcessor extends PaymentProcessor {
// クレジットカードをèªè¨¼ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰
void authorizeCreditCard() {
// クレジットカードèªè¨¼ã®å…·ä½“çš„ãªå‡¦ç†
}
// 支払ã„を処ç†ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…
@Override
void processPayment(double amount) {
authorizeCreditCard();
// クレジットカード支払ã„ã®å‡¦ç†
System.out.println("Processing credit card payment of $" + amount);
}
}
// PayPalPaymentProcessor クラス(具象クラス)
class PayPalPaymentProcessor extends PaymentProcessor {
// PayPal アカウントを確èªã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰
void verifyPayPalAccount() {
// PayPal アカウント確èªã®å…·ä½“çš„ãªå‡¦ç†
}
// 支払ã„を処ç†ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã®å®Ÿè£…
@Override
void processPayment(double amount) {
verifyPayPalAccount();
// PayPal 支払ã„ã®å‡¦ç†
System.out.println("Processing PayPal payment of $" + amount);
}
}
ã“ã®è§£ç”例ã§ã¯ã€PaymentProcessor ã‚¯ãƒ©ã‚¹ãŒæŠ½è±¡ã‚¯ãƒ©ã‚¹ã§ã‚ã‚Šã€æ”¯æ‰•ã„ã®å‡¦ç†ã‚’行ã†ãŸã‚ã®æŠ½è±¡ãƒ¡ã‚½ãƒƒãƒ‰ processPayment ã‚’æä¾›ã—ã¦ã„ã¾ã™ã€‚具象クラスã¨ã—㦠CreditCardPaymentProcessor 㨠PayPalPaymentProcessor ãŒã‚りã€ãれãžã‚Œã‚¯ãƒ¬ã‚¸ãƒƒãƒˆã‚«ãƒ¼ãƒ‰æ”¯æ‰•ã„㨠PayPal 支払ã„ã«ç‰¹æœ‰ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’æä¾›ã—ã¦ã„ã¾ã™ã€‚å„å…·è±¡ã‚¯ãƒ©ã‚¹ã¯æŠ½è±¡ã‚¯ãƒ©ã‚¹ã® processPayment メソッドを実装ã—ã¦ã„ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å…±é€šã®æ”¯æ‰•ã„処ç†ãŒ PaymentProcessor クラスã§å®šç¾©ã•れã€å…·è±¡ã‚¯ãƒ©ã‚¹ã§ç‰¹æœ‰ã®å‡¦ç†ãŒè¿½åŠ ã•れã¦ã„ã¾ã™ã€‚
「018 オブジェクト指å‘ã®æ·±åŒ–ã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント