На этом уроке мы наконец-таки начнём создавать первый класс Бизнес Модели Отеля. Это класс Model.Client, для подготовки которого потребуется ещё некоторые вспомогательные работы.
Дата отправки отчёта:
27 декабря 2015 г.
Задание выполнено: за
45 мин.
Чему научился:
чему то)
Что было сложным:
ловить ошибки
Комментарии:
По поводу свойств и методов которые просто делают SET & GET как от них избавится. Да, Я знаю что нарушаю принцип ООП . Пример на классе Client 1. Делаем поле в классе public string Phone (с заглавной буквы) ; и получаю доступ напрямую (при этом программа работает быстрее) и код не захламляется бесполезными SET & GET . 2. И вдруг случилось нечто невообразимое нужно делать проверку на поле Phone . 3. Решаем задачу просто. 4.1. public string Phone -> private string phone или private string _phone (с помощью рефакторинга переименовываем поле в классе) 4.2. И создаем свойство public string Phone { get { return this._phone; } set { if ( CallPhone(value) ) this._phone = value; else //........ } } все работает ;-)
Почему считаешь, что нарушаешь принцип ООП? Твой предложенный способ использования свойств - это идиома языка C#, его фишка, хороший тон. Кроме того, это может повысить производительность, так как компилятор может заменить вызов аксессоров set/get на их содержимое, то есть, встроить их код, если они не полиморфные.
Научился: Добавлять запись в таблицу клиента. Вообще, то плохая идея скрещивать бульдога с носорогом. О чем я? О том чтобы передавать ссылку на работу с живой базой в класс клиента. Данные об базе вообще не должны знать. Тем более с моей точки зрения Client - это должна быть одна строчка клиентов, Clients - это многие строчки клиентов. А то получилось нечто среднее между моделью и хранимыми в них данными.