смягчение параметров в полиморфизме, поскольку ребенок требует различных параметров - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть один интерфейс, реализованный в 4 классах. Есть некоторые переопределенные методы, которые выполняют почти одинаковую работу в каждом дочернем классе. Но проблема в том, что есть некоторые параметры в некоторых методах, которые являются обязательными для некоторых детей и не используются для некоторых детей, они перекрывают друг друга. Я должен переопределить метод во всех дочерних элементах, которые не используют этот параметр, и в некоторых случаях также передавать значение null. Я хочу смягчить эти параметры в том случае, если ноль не передан, все используемые параметры должны быть переданы переопределенному методу. Мой код настолько сложен, я попытался привести простой пример

public interface ParentInterface {
    void func1(String f1p1, String f1p2);

    void func2(String f2p1, String f2p2, String f2p3);

}
public class Child1 implements ParentInterface {
    @Override
    public void func1(String f1p1, String f1p2) {
        System.out.println(f1p1 + f1p2);
    }

    @Override
    public void func2(String f2p1, String f2p2, String f2p3) {
        System.out.println(f2p1 + f2p3);
    }

}
public class Child2 implements ParentInterface {
    @Override
    public void func1(String f1p1, String f1p2) {
        System.out.println(f1p2);
    }

    @Override
    public void func2(String f2p1, String f2p2, String f2p3) {
        System.out.println(f2p1 + f2p2 + f2p3);
    }
}   
 public static void main(String[] argh) {
        ParentInterface pi1=new Child1();
        pi1.func1("c1f1p1 ","c1f1p2 ");
        pi1.func2("c1f2p1 ",null , "c1f2p3");
        ParentInterface pi2=new Child2();
        pi2.func1(null,"c2f1p2 ");
        pi2.func2("c2f2p1 ", "c2f2p2 ", "c2f2p3");
}

Есть ли для этого шаблон проектирования, чтобы можно было уменьшить нулевые значения?

...