Ответы пользователя по тегу ООП
  • Почему в интерфейсе могут быть только public методы?

    SpyDeX
    @SpyDeX
    Рыбу не раздаю, только удочки.
    интерфейс - это считай контракт.
    публикуя его (даже самому себе) программист говорит, какие внешние методы/св-ва имеет объект.
    Это нужно для планирования взаимодействия ещё не существующих будущих частей.

    Протектеды приваты и прочее совершенно не интересуют на этом этапе никого, так как это будет касаться только классов реализующих конкретный интерфейс.
    Главное что во вне вытащены необходимые заранее спланированные ниточки, которые гарантировано присутсвуют в реализующих интерфейс классах.

    Как только вы думаете про протектеды в интерфесе, вы начинаете спускаться вниз по абстракциям к реализации. Если вам так нужна кодовая дисциплина, можете сделать базовый класс с пустыми запланированными ротектед методами, а-ля интерфейс девелопер тулкит, но только после того как спланировали работающий интерфейс и без протектедов. И после этого просить использовать только его в разработке как базовый, но это противоречит всей парадигме, где жёстко прописывается взаимодействие, и никак не ограничивается реализация и область применения
    Ответ написан
    Комментировать
  • Как принято у программистов: использовать для переменной свойство или давать параметр в каждом методе?

    SpyDeX
    @SpyDeX
    Рыбу не раздаю, только удочки.
    Зависит от контекста, если этот параметр - часть информации о классе, то св-во,
    если параметр ф-ии - внешний фактор - то как параметр метода.

    Вот например, есть рука, у неё есть грузоподъёмность 10 кг, это св-во руки.
    есть задача - поднять сумку 8 кг - это параметр метода.
    Ответ написан
    Комментировать