Объектно-ориентированный дизайн: хорошо ли ограничивать параметры ввода-вывода?

#php #oop

#php #ооп

Вопрос:

Я разрабатываю систему для потоков социальной активности и стремлюсь сделать ее независимой и подключаемой, насколько это возможно. Поскольку речь идет о динамиках активности, вот первоначальный дизайн. Я готов использовать шаблон стратегии, поскольку он будет иметь разные типы потоков активности.

 public interface IStreams 
{
    public int add();
    public int delete();
    public int edit();
}
  

Теперь я собираюсь это реализовать, вот код:

 public class TypeOneActivityStreams implements IStreams {
    public add()
    {
    }
}
  

Теперь я хочу, чтобы потребитель моего класса должен следовать параметрам ввода-вывода, потому что, если он этого не сделает, очевидно, что значения не будут вставляться в БД. Теперь, какими должны быть параметры и возвращаемый тип. Это должен быть объект или массив?

Спасибо

Обновление: я использую СУБД для хранения потоковых данных в базе данных, и эта структура БД будет достаточно изолирована от систем, которые будут использовать эту систему Activystreams.

Ответ №1:

Я не уверен, что этот ответ будет полезен (потому что я не уверен, правильно ли я понял вопрос), но вы можете использовать DTO. С одной стороны, это позволило бы вам передавать разные наборы параметров в различных реализациях IStreams, поскольку у вас могут быть разные реализации DTO (т. Е. Разные DTO с разными наборами атрибутов). С другой стороны, если вы пишете интерфейс для DTO, вы можете указать, что входные параметры должны быть DTO.

Комментарии:

1. Хорошо, я понял, что я использую интерфейс DSO для обработки различных типов потоков. Istreams предназначен только для этого, но что мне делать, чтобы применять различные операции к straams (добавлять, удалять и т. Д.)?