Комментарии 14
> Готовлю статью про данный паттерн в Java.
Поздновато уже как бы. Начиная с Java 1.5 перечисления являются частью языка, по-этому данный паттерн уже не особо актуален применимо к Java ИМХО.
Поздновато уже как бы. Начиная с Java 1.5 перечисления являются частью языка, по-этому данный паттерн уже не особо актуален применимо к Java ИМХО.
0
в яваскрипте:
var seasonType={
winter: Object( 'winter season' ),
spring: Object( 'spring season' ),
summer: Object( 'summer season' ),
autumn: Object( 'autumn season' )
};
var seasonType={
winter: Object( 'winter season' ),
spring: Object( 'spring season' ),
summer: Object( 'summer season' ),
autumn: Object( 'autumn season' )
};
0
Вот только в яваскрипте не получится TypeSafe :)
0
TypeSafe нужен только в типизированных языках. Данный паттерн позволяет ещё на этапе написания кода не допускать мелких оплошностей, которые потом очень тяжело найти и исправить. А если вы пользуетесь ещё и полноценной IDE (я использую Eclipse со всеми «примочками»), то тогда данный паттерн для вас просто незаменим.
0
typesafe противоречит полиморфизму. а вот valuesafe вполне себе получается.
0
А можно по-подробнее про этот паттерн. Что я не могу найти информации про него.
И каким образом TypeSafe противоречит полиморфизму? (это не подковырка, а вопрос из из чистого любопытства в образовательных целях)
И каким образом TypeSafe противоречит полиморфизму? (это не подковырка, а вопрос из из чистого любопытства в образовательных целях)
0
ну, там дальше, если написать:
if( weather === weatherType.winter )
, то код выполнится, если переданн именно тот сымый объект и ни что другое.
в яваскрипте, правда, нельзя использовать объекты в качестве ключей хэша. а вот в питоне — можно.
насчёт типов — это вообще, а не конкретно к данному случаю. типы определяют внутреннюю структуру объекта, а вот интерфейс — его возможности общения с внешним миром. а полиморфизм предполагает «не важно, что там у него внутри — важно, что он умеет»
if( weather === weatherType.winter )
, то код выполнится, если переданн именно тот сымый объект и ни что другое.
в яваскрипте, правда, нельзя использовать объекты в качестве ключей хэша. а вот в питоне — можно.
насчёт типов — это вообще, а не конкретно к данному случаю. типы определяют внутреннюю структуру объекта, а вот интерфейс — его возможности общения с внешним миром. а полиморфизм предполагает «не важно, что там у него внутри — важно, что он умеет»
0
Ничего не понял. :)
В данном случае все переменные типа статические. Две одинаковые константы ссылаются на одно и тоже. Тут я проблемы не вижу.
Ты писал: «typesafe противоречит полиморфизму. а вот valuesafe вполне себе получается.»
Потом написал: «насчёт типов — это вообще, а не конкретно к данному случаю. типы определяют внутреннюю структуру объекта, а вот интерфейс — его возможности общения с внешним миром. а полиморфизм предполагает «не важно, что там у него внутри — важно, что он умеет»»
Что такое полиморфизм я знаю, а даже если бы и не знал :) то заглянул бы в справочник.
Так что вопрос открыт. Пожалуйста по подробнее, чем данный паттерн мешает полиморфизму. Желательно нормальные, развёрнутые аргументы. Я не экстрасенс, не могу догадаться что ты имел ввиду. И где ты собрался использовать полиморфизм, в клиенте, который использует данное перечисление или же в купе с другими перечислениями.
В данном случае все переменные типа статические. Две одинаковые константы ссылаются на одно и тоже. Тут я проблемы не вижу.
Ты писал: «typesafe противоречит полиморфизму. а вот valuesafe вполне себе получается.»
Потом написал: «насчёт типов — это вообще, а не конкретно к данному случаю. типы определяют внутреннюю структуру объекта, а вот интерфейс — его возможности общения с внешним миром. а полиморфизм предполагает «не важно, что там у него внутри — важно, что он умеет»»
Что такое полиморфизм я знаю, а даже если бы и не знал :) то заглянул бы в справочник.
Так что вопрос открыт. Пожалуйста по подробнее, чем данный паттерн мешает полиморфизму. Желательно нормальные, развёрнутые аргументы. Я не экстрасенс, не могу догадаться что ты имел ввиду. И где ты собрался использовать полиморфизм, в клиенте, который использует данное перечисление или же в купе с другими перечислениями.
0
В имени конструктора вы таки оговорились. А вообще — спасибо!
0
Спасибо. Засел сейчас за AS, и ваша статья пришлась очень кстати.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Type-Safe Enumerations в Action Script 3