Если меньше код: это - просто интеллектуальная проблема, или это конкретно полезно? [закрытый]

Согласно :h new-filetype части B вы можете сделать что-то вроде следующего:

augroup txt_to_markdown
    autocmd!
    autocmd BufRead * if &filetype == 'text && getline(1) =~ '^title:' | set filetype=markdown | endif
augroup END
7
задан Federico Zancan 5 February 2009 в 16:31
поделиться

5 ответов

Это кажется, что Вы спрашиваете, существует ли "конкретно полезное" преимущество для использования шаблона разработки состояния, которому я сказал бы определенно да, особенно если Ваше приложение на самом деле полагается в большой степени на "состояние" своих объектов. Популярным каноническим примером является пример видеоплеера, который всегда находится в одном состоянии и может только перейти в различные состояния в зависимости от состояния, в котором это в настоящее время находится (например, это не может остановиться, если это уже останавливается, но это может играть, и это может перемотаться, и так далее).

В то время как тем конкретным примером можно управлять относительно легко с горсткой if/else/switch-type условий (если (isStopped ()), игра (), и т.д.), потому что нет то, что много состояний для контакта с, когда состояния или их правила перехода начинают становиться более многочисленными или сложными, шаблон состояния абсолютно, становятся довольно ценными, поскольку без него, код имеет тенденцию накапливать elseifs как сумасшедший, и вещи становятся все меньше и меньше читаемыми и управляемыми со временем.

Таким образом да, в целом, если Вы находите поведения своих объектов, варьирующиеся согласно их состояниям (если isStopped () игра () / elseif isPlaying () остановка () / elseif (isBroken () фиксируют ()), и т.д.), то да, действительно рассматривают использование шаблона состояния. Это - немного больше работы впереди, но обычно определенно стоящий усилия и сделанный правильно я сомневаюсь, что Вы заметили бы любые значительные издержки просто для использования его.

Направляйтесь Первые Шаблоны разработки предлагает замечательное описание, как и whys, также - я настоятельно рекомендую взятие, которые заказывают в значительной степени кому-либо пишущему объектно-ориентированный код.

4
ответ дан 6 December 2019 в 21:20
поделиться

Я должен не согласиться - полезные шаблоны разработки в стороне, этим конкретным примером является смешное излишество:

  • класс с 15 строками с легко понятным процессом
  • стал классом с 50 строками с запутываемой целью

Мне не удается видеть, как это - улучшение - оно нарушает YAGNI1 и ASAP2, чрезмерно увеличивает размер кода и уменьшает эффективность (несколько объектов, которые инстанцируют, чтобы сделать задание при отсутствии требования).

Как интеллектуальное осуществление, мягко интересное. Как привычка программирования, ужасающая!;-)


1 YANGI = Вы не собирается нуждаться в нем

2 как можно скорее = максимально простой

5
ответ дан 6 December 2019 в 21:20
поделиться

Это - очень полезная техника.

Вы не распространяете если (myState) операторы вокруг Вашего класса.
Можно расширить технику до многих состояний и только иметь для изменения то, что Вы присваиваете myState участнику.

Что касается производительности и использования памяти, ожидайте, пока у Вас нет чего-то для измерения - возможно, необходимо попробовать оба пути и измерить их обоих, когда они работают.

1
ответ дан 6 December 2019 в 21:20
поделиться

Состояние/стратегические модели пробуют и верно. Они не просто интеллектуальное осуществление. Если Вы думаете о производительности и использовании памяти, теперь... Вы, вероятно, стреляете себе в ногу. Доберитесь код... затем представляют.

2
ответ дан 6 December 2019 в 21:20
поделиться

Да, это работает и прохладно... в какой-то степени (точка, где это становится глупым). Можно даже использовать анонимные внутренние классы, если Вы должны, даже перечисления.

0
ответ дан 6 December 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: