ВОПРОС: Есть ли способ написать метод, который возвращает || или && или < или > в зависимости от того, какой реализованный подкласс вызывает метод.
В настоящее время я изучаю Java и прохожу несколько курсов в университете до этой степени.
Итак, в задании курса, касающегося шаблонов объективного проектирования и дискретных структур, мы должны написать программу, которая моделирует логическое предложение и проверяет его на качество тавтологии. т. е. если выражение истинно для всех возможных входных данных.
Я создал простую реализацию двоичного дерева, и программа работает, но часть курса, посвященная проектированию, требует от нас использования таких шаблонов проектирования, как «Композитный» и «Метод шаблона» - это очень модные слова, наверняка вы все слышали о них.
У меня в toString есть шаблон метода шаблона, поэтому
Код: Выделить всё
abstract Class BinaryConnector extends Expression{
protected Expression a,b
public String toString(){return a + getConnective() + b; }
public abstract String getConnective();
}
Код: Выделить всё
Class Or extends BinaryConnective{
//omissions
public String getConnective(){return "||";}
Я полагаю, что существует множество способов спланировать такое решение, например, оператор переключения в моем абстрактном классе. Но просто элегантные решения, пожалуйста. Я надеюсь на что-то вроде «просто разберите getConnective()» или что-то подобное
или отругайте меня за то, что я заставил вас так много читать.
Подробнее здесь: https://stackoverflow.com/questions/328 ... -operators
Мобильная версия