Стойкое ощущение от вашего диалога, что вам нужно писать материал по теме, и вы таким образом его собираете…
Во всяком случае ваш собеседник выглядит и много профессиональнее. И предлагает реальное рабочее решение.
Странно что это элементарное решение не фигурирует в заметке.
Вместо ужасной идеи перечислимых списков.
В этом ваша и проблема, что вы путаете принципы и конкретные реализации, которые могут от этих принципов отходить.
И, да, Object.toString в java это именно нарушение.
Что явилось причиной такого компромисса это не ко мне.
Вы же даже противоречия в подходе не видите.
Чёткий догмат ООП это SOLID, Java это идеальное ООП — значит бездумно лепим как там.
Теперь возвращаясь к вашему коду
Класс A может содержать метод toB(), но не как интерфейс полученный от родителя.
Строго говоря папа не обязан на генетическом уровне знать как из сына сделать дочку.
Это обязанности хирурга.
У которого общее с папой только то что они люди.
То есть возможен и будет правильным вариант
interface ICommon {}
interface IA extends ICommon {}
interface IB extends ICommon {
toA(): IA
}
Более точный рецепт вы сможете получить дав описание конкретной задачи
All object-oriented programming languages provide mechanisms that help you implement the object-oriented model. They are encapsulation, inheritance, and polymorphism. Let’s take a look at these concepts.
Да только польская нотация и обратная польская нотация отличаются именно порядком:
(операция) (аргументы) для польской нотации + 2 2
(аргументы) (операция) для обратной польской нотации 2 2 +
Вы лично чуть выше отказались помогать ему и сотням других, кому нужна помощь.
После этого у вас нет никакого морального права что-либо рассказывать по этой тнме
Вы не путайте страну, которая живет на ренту со всего мира, и всех остальных.
целесообразность тех или иных действий у тех и других разная (у кого-то суп жидкий, а у кого-то бриллианты мелкие)
Конкретно вы готовы к налогам на «сверхдоходы»? То есть все ваши доходы сверху средней зарплаты (36 тысяч) изымать на компенсацию уровня и качества жизни тех, кто может меньше.
И, да, не «заказчик платит», а вы лично в нерабочее время и бесплатно будете заниматься улучшением доступности результатов вашей работы.
Готовы?
Нет? Ну тогда закройте свой оголтелый популизм.
За чужой счёт и чужими усилиями очень легко быть «добрыми»
«исключительно на личном опыте» это не то, что ждём мы от эксперта и профессионала…
Проблема статьи собственно в этом. И комментарии из разряда «обругали и по женскому полу прошлись» это именно попытки людей разобраться что же в этой статье не так.
В конечном итоге заходите в PhpStorm -> Tools -> Save File as Template | Save Project as Template
используется
http://velocity.apache.org/engine/devel/user-guide.html#Velocity_Template_Language_VTL:_An_Introduction
Читаем, просвещаемся, используем, если очень надо.
Если не принимать во внимание создание самих шаблонов (которых кроме как руками никто не сделает), то генерация кода по шаблону проекта в PhpStorm займет ровно один клик.
Гораздо интереснее кодогенерация по существующим схемам БД или UML
И такое в IDE существует, например та же интеграция VisualParadigm в Netbeans или Idea
Тогда откройте нам тайну. По какой причине вы не в состоянии оценивать трудоемкость проектов в человеко-часах?
О каком интерфейсе речь?
Вот в этом все комбайнеры…
О интерфейсах классов, о которых мы ранее вели речь, и в качестве примера которых приводили метод save()
Зачем по ним бегать, там все явно и понятно.
Когда их 2 — конечно
Но в нашем сферическом примере их 50
О каких фреймворках речь? Я говорю о любом проекте, в котором используются контроллеры или миграции.
Вы еще не в курсе, что в разных фреймворках это реализуется индивидуально?
И Silex, Expressive, ZF, Laravel будут иметь отличные кодовые базы для контроллеров.
С миграциями чуть проще, но тоже будут отличия.
В конечном итоге заходите в PhpStorm -> Tools -> Save File as Template | Save Project as Template
используется
http://velocity.apache.org/engine/devel/user-guide.html#Velocity_Template_Language_VTL:_An_Introduction
Читаем, просвещаемся, используем, если очень надо.
И, да, я не даром привел в пример apigility — пользуйтесь.
Там есть много чего в экосистеме Zendframework
Очередные безосновательные заявления.
Да вы же своими вопросами основания как раз и даете — вы просто демонстрируете, что не знаете как использовать IDE
Во всяком случае ваш собеседник выглядит и много профессиональнее. И предлагает реальное рабочее решение.
Странно что это элементарное решение не фигурирует в заметке.
Вместо ужасной идеи перечислимых списков.
В этом ваша и проблема, что вы путаете принципы и конкретные реализации, которые могут от этих принципов отходить.
И, да, Object.toString в java это именно нарушение.
Что явилось причиной такого компромисса это не ко мне.
Вы же даже противоречия в подходе не видите.
Чёткий догмат ООП это SOLID, Java это идеальное ООП — значит бездумно лепим как там.
Теперь возвращаясь к вашему коду
Класс A может содержать метод toB(), но не как интерфейс полученный от родителя.
Строго говоря папа не обязан на генетическом уровне знать как из сына сделать дочку.
Это обязанности хирурга.
У которого общее с папой только то что они люди.
То есть возможен и будет правильным вариант
interface ICommon {}
interface IA extends ICommon {}
interface IB extends ICommon {
toA(): IA
}
Более точный рецепт вы сможете получить дав описание конкретной задачи
Object и String в java это классы, а не интерфейсы.
Более того в примерах вашего кода тоже классы.
Что касается нарушения, то сериализация в строку произвольного класса в корневом это и есть general-purpose.
Дальше объяснять?
All object-oriented programming languages provide mechanisms that help you implement the object-oriented model. They are encapsulation, inheritance, and polymorphism. Let’s take a look at these concepts.
Кстати, на сайте о java
Так что действительно учите-ка матчасть
Соответственно у вас в коде реальная жесть.
Либо уберите extends
Либо перенесите toB() в класс B
Да только польская нотация и обратная польская нотация отличаются именно порядком:
(операция) (аргументы) для польской нотации + 2 2
(аргументы) (операция) для обратной польской нотации 2 2 +
Это скорее провокация на бурление говен. Возможно пиар.
Практической пользы 0.
И, да, не спрыгивайте.
Я уже писал — легко за чужой счёт быть добрым.
Возьмите и сделайте конкретное улучшение лично, не перевод статьи
Не призывы к другим поработать на благо.
А взять и переработать хабр согласно упомянутым гайдлайнам…
Тогда снимем шапку.
А до тех пор — балабол
Кроме вашего воспаленного воображения.
Но проблема есть, а вот помочь lavkasnov, например, лично и бесплатно улучшив хабр, вы отказываетесь.
Верно?
Не надо нас стыдить.
Вы лично чуть выше отказались помогать ему и сотням других, кому нужна помощь.
После этого у вас нет никакого морального права что-либо рассказывать по этой тнме
целесообразность тех или иных действий у тех и других разная (у кого-то суп жидкий, а у кого-то бриллианты мелкие)
Конкретно вы готовы к налогам на «сверхдоходы»? То есть все ваши доходы сверху средней зарплаты (36 тысяч) изымать на компенсацию уровня и качества жизни тех, кто может меньше.
И, да, не «заказчик платит», а вы лично в нерабочее время и бесплатно будете заниматься улучшением доступности результатов вашей работы.
Готовы?
Нет? Ну тогда закройте свой оголтелый популизм.
За чужой счёт и чужими усилиями очень легко быть «добрыми»
Более того без получения экономического обоснования будет та же бредятина, что и с пандусами, подъёмниками в транспорте и т.п.
Проблема статьи собственно в этом. И комментарии из разряда «обругали и по женскому полу прошлись» это именно попытки людей разобраться что же в этой статье не так.
Формирование ссылки на связанную задачу это, конечно, лучше чем ничего
Позитивный = открытый + искренний?
на эту конкретную задачу я вам дал решение
Если не принимать во внимание создание самих шаблонов (которых кроме как руками никто не сделает), то генерация кода по шаблону проекта в PhpStorm займет ровно один клик.
Гораздо интереснее кодогенерация по существующим схемам БД или UML
И такое в IDE существует, например та же интеграция VisualParadigm в Netbeans или Idea
Сгенерируйте мне пачку (штук 10) моделей и мидлвейров для круда в Zend Expressive
схему БД вам дать?
И, да, судя по вашей заявке вам даже настраивать vim не придется, поскольку он это может сделать «искаропки»
В противном случае мы наблюдаем типичный пример балабола…
И остальное даже комментировать не имеет смысла.
Тогда откройте нам тайну. По какой причине вы не в состоянии оценивать трудоемкость проектов в человеко-часах?
Вот в этом все комбайнеры…
О интерфейсах классов, о которых мы ранее вели речь, и в качестве примера которых приводили метод save()
Когда их 2 — конечно
Но в нашем сферическом примере их 50
Вы еще не в курсе, что в разных фреймворках это реализуется индивидуально?
И Silex, Expressive, ZF, Laravel будут иметь отличные кодовые базы для контроллеров.
С миграциями чуть проще, но тоже будут отличия.
В конечном итоге заходите в PhpStorm -> Tools -> Save File as Template | Save Project as Template
используется
http://velocity.apache.org/engine/devel/user-guide.html#Velocity_Template_Language_VTL:_An_Introduction
Читаем, просвещаемся, используем, если очень надо.
И, да, я не даром привел в пример apigility — пользуйтесь.
Там есть много чего в экосистеме Zendframework
Да вы же своими вопросами основания как раз и даете — вы просто демонстрируете, что не знаете как использовать IDE