Как распланировать классы для приложения а-ля pastebin.org? Хочу сделать аналог пастебина с такой логикой: 1 Юзер пастит текст 2 Машина определяет один из типов 3 В зависимости от типа выдаётся краткий бриф Я пишу так (код питоновский, но, думаю, понятен любому программисту):class Paste(object): def save(): # сериализация и сброс в базу def guesstype(): # угадать тип пасты def list(): # список недавних def __str__(): # показать бриф пасты class PythonCode(Paste): def brief(): # найти на гитхабе используемые модули, вывести активность коммитов по ним def wrapsnippet(): # ... class MayakovskyPoetry(Paste): def brief(): # подсчитать слоги в чётных строках def printhardcoverbook(): # ... Прав ли я? Кое-кто советует "написать всеохватывающую логику с маркерами и в будущем расширять через конфиг, так как код нельзя трогать потому что нельзя и всё тут", но мне кажется, переписать guesstype() базового класса и добавить класс-наследник для нового типа будет проще, логичнее и очевиднее. Логика деления на типы весьма нетривиальная, с кучей "но если, то" и плохо ложится на "универсальный анализатор"
В вашем случае, определение классов и методов выглядит вполне логично и разумно. Каждый класс Paste соответствует конкретному типу пасты и содержит методы для работы с этим типом.
Если логика деления на типы сложная и не требует обработки всех типов одним универсальным анализатором, то использование классов-наследников является удобным и понятным способом структурировать код.
Если в будущем появится новый тип пасты, вам достаточно будет создать новый класс-наследник и переопределить необходимые методы, не затрагивая общую логику класса Paste.
Таким образом, ваш подход к распланированию классов в приложении наподобие pastebin.org выглядит правильным и позволит удобно расширять функциональность в будущем.
В вашем случае, определение классов и методов выглядит вполне логично и разумно. Каждый класс Paste соответствует конкретному типу пасты и содержит методы для работы с этим типом.
Если логика деления на типы сложная и не требует обработки всех типов одним универсальным анализатором, то использование классов-наследников является удобным и понятным способом структурировать код.
Если в будущем появится новый тип пасты, вам достаточно будет создать новый класс-наследник и переопределить необходимые методы, не затрагивая общую логику класса Paste.
Таким образом, ваш подход к распланированию классов в приложении наподобие pastebin.org выглядит правильным и позволит удобно расширять функциональность в будущем.