Доступ к подклассам класса в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Доступ к подклассам класса в Java

Сообщение Anonymous »

Я новичок в Java и в настоящее время изучаю принципы и шаблоны проектирования SOLID. Пытаясь полностью придерживаться принципа OCP (принцип открытости/закрытости) и шаблона проектирования прототипа, я столкнулся с проблемой: мне приходится изменять основной класс всякий раз, когда я добавляю новый класс формы, который расширяет абстрактный класс Forme.
Вот основной код Java:

Код: Выделить всё

import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Palette pal = new Palette();
Editeur editeur = new Editeur(pal);

System.out.print("\nAdd Circle (0/1)? ");
int input = scanner.nextInt();
if (input == 1) {
pal.ajouter(new Cercle(null));
}

System.out.print("Add Triangle (0/1)? ");
input = scanner.nextInt();
if (input == 1) {
pal.ajouter(new Triangle(null));
}

System.out.print("Add Rectangle (0/1)? ");
input = scanner.nextInt();
if (input == 1) {
pal.ajouter(new Rectangle(null));
}

editeur.dessiner();
editeur.afficherDessin();
scanner.close();
}
}
Я пытался найти способ динамически справиться с этим, аналогичный методу Python .__subclasses__() Python, который извлекает все подклассы класса. Однако Java не имеет встроенного эквивалента. Я также сталкивался с внешними библиотеками, такими как Reflections, но они требуют дополнительных зависимостей в среде.
Есть ли способ реализовать этот функционал (добавление новых фигур, даже не меняя основной код), не полагаясь на во внешних библиотеках?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ss-in-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»