Коллеги, помогите... Сейчас разбираю шаблон Bridge. Ниже набросал код в котором демонстрирую мое понимание данного подхода. Правильно ли я понял? Демо задача:
Бухгалтерия печатает отчеты... Сегодня нужны за неделю и месяц, а завтра фиг его знает))) Формат пока нужен PDF и DOC, но и это может измениться))) Т.е. система отчетов должна быть масштабируемой по условным двум осям.
Реализация: abstract class AbstractFormat { abstract void print(); } public class DOCFormat extends AbstractFormat { @Override void print() { System.out.println("This is a DOC representation:"); } } public class PDFFormat extends AbstractFormat { @Override void print() { System.out.println("This is a PDF representation:"); } } abstract class AbstractReport { void print(AbstractFormat abstractFormat){ abstractFormat.print(); } } public class MonthlyReport extends AbstractReport{ @Override void print(AbstractFormat abstractFormat) { super.print(abstractFormat); System.out.println("Monthly report"); } } public class WeeklyReport extends AbstractReport{ @Override void print(AbstractFormat abstractFormat) { super.print(abstractFormat); System.out.println("Weekly report"); } } public class Main { public static void main(String[] args) { new MonthlyReport().print(new PDFFormat()); new MonthlyReport().print(new DOCFormat()); new WeeklyReport().print(new PDFFormat()); new WeeklyReport().print(new DOCFormat()); } } Кстати, ребята! В процессе решения задачек не забывайте про фундамент. Я вот как дошел до поиска работы, неожиданно пришлось в шаблонах разбираться)))