شعار ConstructiCat
CodeBust.
تصفح القسم ▾

كلاسات بديلة بواجهات مختلفة.

كلاسان يؤديان وظائف متطابقة لكنهما يمتلكان أسماء أساليب مختلفة.

##العلامات والأعراض

كلاسان يؤديان وظائف متطابقة لكنهما يمتلكان أسماء أساليب مختلفة.

class SmtpMailer {
  private final SmtpTransport transport = new SmtpTransport();
  void send(Message msg) { transport.write(msg); }
}
class EmailSender {
  private final SmtpTransport transport = new SmtpTransport();
  void deliver(Message msg) { transport.write(msg); }
}

##أسباب المشكلة

على الأرجح لم يكن المبرمج الذي أنشأ أحد الكلاسين يعلم أن كلاساً مكافئاً وظيفياً كان موجوداً بالفعل.

##المعالجة

##الفوائد

  • تتخلص من الكود المكرر غير الضروري، مما يجعل الكود الناتج أقل ضخامة.

  • يصبح الكود أكثر قابلية للقراءة والفهم (لن تضطر بعد الآن إلى تخمين سبب إنشاء كلاس ثانٍ يؤدي نفس وظائف الأول بالضبط).