Хочу сделать аналог пастебина с такой логикой:
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() базового класса и добавить класс-наследник для нового типа будет проще, логичнее и очевиднее.
Логика деления на типы весьма нетривиальная, с кучей "но если, то" и плохо ложится на "универсальный анализатор"