Мостовой паттерн, как убрать логику разработчика - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь понять, как использовать шаблон моста в следующей ситуации. Проблема, с которой я столкнулся, заключается в том, что я не могу разделить разработчиков.

public class GoodTest {
    void sayHi(){
        System.out.println("I want to say:"); // Top part - same for all implementors

        System.out.println("Good Test"); // Middle part different

        System.out.println("I am done"); // Bottom part - same for all implementors
    }
}

public class GoodMathTest {
    void sayHi(){
        System.out.println("I want to say:"); // same for all implementors

        int x = 10;
        System.out.println(x);             // middle part is different from others 
        System.out.println("Good Math Test");  

        System.out.println("I am done"); // same for all implementors
    }
}

public class GoodMathWrittenTest {
    void sayHi(){
        System.out.println("I want to say:"); // same for all implementors

        int x = 10;
        System.out.println(x*x);
        System.out.println("Good Math Written Test"); // middle part different 
        System.out.println(x*x*x);

        System.out.println("I am done"); // same for all implementors
    }
}

Я считаю, что в этом случае решение состоит в том, чтобы удалить Test Type и Subject Test, построить свою собственную иерархию и передать их экземпляр классу, который может направить вызов одному этих разработчиков.

Проблема:

  1. Поскольку исходный метод использует вещи, которые будут делегированы Subject Test и Test type. Как мы извлекаем и разбиваем код Subject Test и Test type.
  2. Если я сделаю то же самое, как мне написать метод для конкретного класса, который использует средства реализации, полученные путем внедрения зависимостей?

Спасибо

...