|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Использование Property при создании классов в ООП
Добрый всем день!
Народ подскажите в ООП при создании классов лучше будет пользоваться property или можно простыми перемеными. Ну типа как лучше и что будет являться "хорошим тоном" например Код:
Type TMyClass = class private Name: string; Age: byte; public Constructor Create; Procedure SetName (value: string); Procedure SetAge (value: byte); Function getName: string; Function GetAge: byte; Код:
Type TMyClass = class private FName: string; FAge: byte; public Constructor Create; Procedure SetName (value: string); Procedure SetAge (value: byte); Function getName: string; Function GetAge: byte; published property Name string read GetName write SetName; property Age string read GetAge write SetAge; Код:
Procedure SetName (value: string); Procedure SetAge (value: byte); Function getName: string; Function GetAge: byte; Код:
Type TMyClass = class Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит Прапор: вы не попали ни один раз. Программист: Пули вылетели, проблемы у вас. |
#2
|
|||
|
|||
В принципе, если у тебя нет никаких ограничений на знаения поля (и никаких доп. обработок), то можно просто выставлять поля в public.
Property нужно в 2х случаях: 1. Когда у тебя есть некоторая логика, которая должна срабатывать при чтении или записи значения (в т.ч. векторные свойства). 2. Когда ты пишешь компонент - для выставления свойст в инспектор объектов. Хотя, я все пишу через property т.к. никогда заранее не знаешь что может потребоваться. Легче сразу их задействовать, чем потом перелопачивать половину кода. По второму вопросу. Обычно такие функции кладуться в секцию private. Однако, если ты планируешь их дальше переопределять, то их надо сделать виртуальными и перенести в protected. PS. Сразу под именем класа, если не указано имя секции, то это public. |
#3
|
|||
|
|||
Спасибо за объяснение много стало более чем понятно.
Програмист приходит на стрельбище. Стреляет. Прапор смотрит на мешень и говорит Прапор: вы не попали ни один раз. Программист: Пули вылетели, проблемы у вас. |