я должен использовать аксессоры или нет? - PullRequest
0 голосов
/ 21 февраля 2012

Я программирую около 2-3 лет, и на самом деле я разрабатываю игру в actioncript atm.У меня есть класс персонажа, в котором есть несколько полей, таких как имя, уровень, опыт, урон, защита и так далее.сейчас я сделал их защищенными, чтобы производные классы могли их видеть, и я использовал методы getter и setter для их инкапсуляции, чтобы другие классы могли видеть только getter.Однако в ActionScript кажется, что вы не можете сделать средства доступа защищенными, поэтому они должны быть открытыми.Но зачем мне вообще использовать аксессоры, если кто-нибудь может их просто увидеть и отредактировать?Должен ли я просто пропустить инкапсуляцию и перейти к открытым полям и инкапсулировать те, которые должны делать некоторые другие операторы, когда они установлены.Например, если я увеличиваю поле опыта, он должен проверять повышение уровня при увеличении.

Мне нравятся средства доступа в c #, потому что они упрощают кодирование, поскольку вы не можете видеть частные / защищенные средства доступа в других классах.

Было бы неплохо узнать мнение опытных программистов о методах доступа.

1 Ответ

1 голос
/ 27 мая 2012

Accessors - это отличное соглашение , но я полагаю, вам не нужно это соблюдать.

Преимущество их использования в том, что у вас есть лучший API, то есть совершенно очевидно, что делает функция IncreaseLevel().

Кроме того, у вас есть возможность уведомлять другие части вашего кода.Например, если каждый раз, когда вы увеличиваете уровень, вам нужна определенная анимация, это может происходить в функции IncreaseLevel().В общем, я рекомендую это.

...