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

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); }
}##أسباب المشكلة
على الأرجح لم يكن المبرمج الذي أنشأ أحد الكلاسين يعلم أن كلاساً مكافئاً وظيفياً كان موجوداً بالفعل.
##المعالجة
##الفوائد
-
تتخلص من الكود المكرر غير الضروري، مما يجعل الكود الناتج أقل ضخامة.
-
يصبح الكود أكثر قابلية للقراءة والفهم (لن تضطر بعد الآن إلى تخمين سبب إنشاء كلاس ثانٍ يؤدي نفس وظائف الأول بالضبط).
