Должны ли абстрактные члены класса быть указателями или ссылками?
Для игрушечного примера скажем, что у меня есть следующий класс:
class SerializedFileProcessor {
public:
std::string Process(std::string file) const {
std::string text = deserializer.Deserialize(file);
text = processor.Process(text);
return serializer.Serialize(text);
}
private:
IDeserializer? deserializer;
IProcessor? processor;
ISerializer? serializer;
};
Где (экземпляры конкретных подклассов) десериализатор, процессор и сериализатор передаются в конструктор этого класса.
SerializedFileProcessor не владеет ими и не должен их удалять.
Должны ли эти члены класса быть указателями или ссылками? Или этот узор надо делать совсем по другому?
SerializedFileProcessor
. Если тип и местоположение не могут измениться, то ссылка, скорее всего, в порядке, а если ссылка в порядке, то, вероятно, лучше. Если тип объекта может измениться, то его адрес должен измениться, и он не может быть ссылкой. - person JSF   schedule 16.12.2015