Наилучшая практика для каталога / расположения ваших интерфейсов (как в реализациях)

#actionscript-3 #design-patterns #interface

#actionscript-3 #шаблоны проектирования #интерфейс

Вопрос:

Какова наилучшая практика для каталога / расположения ваших интерфейсов? (как в реализациях) в папке с классом, с которым вы взаимодействуете? папка интерфейса в корне исходного кода?

Ответ №1:

Вообще говоря, вы не должны проводить различие между интерфейсом и классом при выборе структуры пакета.

Поскольку вы почти наверняка используете интерфейсы для очистки своего API, вам следует представить, что вы передаете свой код другому опытному программисту AS3; где бы они ожидали найти класс / интерфейс в SWC? Нет причин, по которым они должны различать интерфейс и класс, учитывая, что они все равно не могут видеть код.

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

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

2. Я думаю, разумно, что вы поместили его в соответствующий общий пакет, поэтому, если бы у вас были src / app / view/suba / SubViewA.as и src / app / view/subb / SubViewB.as, тогда, я думаю, ваш интерфейс был бы src / app / view / IView.as. Также нет причин, по которым они должны быть подклассированы сами по себе, все они также могут находиться в src / app / view / . Как я уже сказал, для такого рода вещей нет правил, за исключением принципа, согласно которому вы не должны проводить различие между классом и интерфейсом ради упаковки.

3. Кстати, также нет реальной причины, по которой интерфейс должен иметь I перед ним, хотя многие люди это делают, включая Adobe! Я склонен опускать I в своих более поздних библиотеках.

Ответ №2:

Это не вопрос с однозначным ответом. Тем не менее, по моему личному мнению, наиболее разумно, чтобы интерфейс находился в том же пакете, что и классы, которые его реализуют (или как можно ближе). Таким образом, другие пользователи вашего кода могут сделать некоторые выводы об интерфейсе и его предполагаемом использовании из структуры пакета.
Когда все интерфейсы находятся в папке «interface» в корневом каталоге, 1 — эта папка может стать действительно большой и уродливой, 2 — интерфейсы полностью отключены от всех связанных файлов, поэтому их сложнее перемещать как группу, 3 — ваша единственная подсказка о том, что делает интерфейс (фактически не открывая его, не импортируя и не изучая его документы и участников), — это имя файла.

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

1. просто замечание по языку здесь, вывод заключается в выводе путем рассуждений из предпосылок, нюансов или доказательств. Когда вы намереваетесь передать смысл, вы подразумеваете, коннотируете, предлагаете и т.д.

2. @Slomojo смехотворно, переполнение грамматики? Вы правы в том, что когда вы создаете структуру пакета, вы используете (или должны использовать) ее, чтобы подразумевать что-то о файлах внутри, но мое использование по-прежнему правильное. Предполагается, что эти значения, коннотации, предложения должны быть получены, выведены и т.д. кем-то, просматривающим файлы. Возможно, мое использование слова «вы» сбило вас с толку.

3. справедливо, но в предыдущей формулировке контекст обращения «вы» был неоднозначным. Поскольку вы объясняли, как кто-то разместит свои интерфейсы в структуре пакета, «вы», похоже, предназначалось для человека, создающего организацию интерфейсов. Изменение формулировки, безусловно, устраняет это. 😉