Я пытаюсь написать небольшую программу классификатора. Однако какие данные у меня есть, я не полностью решил, поэтому я пытаюсь сделать код как можно более общим. Я столкнулся с этой проблемой.Инициализация подкласса от абстрактного типа
У меня есть в основном 3 классы
abstract class AbstractPoint{}
abstract class AbstractCluster{}
class Classifier{
addPoint(AbstractPoint pt){...}
}
Я в порядке до этого момента. Однако в классе классификатора, если точки соответствуют определенному шаблону Мне нужно создать кластер, чтобы добавить точки. , но невозможно создать экземпляр объекта на основе абстрактного класса. Есть ли хорошие методы/шаблоны? или другими способами это можно сделать?
Это не совсем понятно, что вы после этого, но вы можете смотреть на шаблон фабрики. Можно ли добавить метод в «AbstractPoint», который может вернуть соответствующий конкретный 'AbstractCluster'? – chrylis
Похоже, вам понадобятся некоторые конкретные классы, а также эти абстрактные. Возможно, вам следует написать один или несколько классов, которые расширяют 'AbstractCluster', которые вы можете фактически создать. –
Я думаю, что заводская модель именно то, что я ищу! благодаря! – Pita