МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Метод потребує код ініціалізації перед викликом або пост-код після викликуКод наступного виду є "попереджувальним знаком": WithdrawalTransaction withdrawal; withdrawal.SetCustomerId( customerId ); withdrawal.SetBalance( balance ); withdrawal.SetWithdrawalAmount( withdrawalAmount ); withdrawal.SetWithdrawalDate( withdrawalDate ); ProcessWithdrawal( withdrawal ); customerId = withdrawal.GetCustomerId(); balance = withdrawal.GetBalance(); withdrawalAmount = withdrawal.GetWithdrawalAmount(); withdrawalDate = withdrawal.GetWithdrawalDate(); Подібним знаком є випадок, коли створюється спеціальний конструктор для класу WithdrawalTransaction, який має параметрами значення для підмножини його властивостей: withdrawal = new WithdrawalTransaction( customerId, balance, withdrawalAmount, withdrawalDate ); ProcessWithdrawal( withdrawal ); delete withdrawal; Кожен раз, коли зустрічається таке, потрібно задуматись, чи інтерфейс методу правильно представляє відповідну абстракцію. В даному випадку, напевне, метод ProcessWithdrawal() потрібно додати до класу WithdrawalTransaction, або список параметрів ProcessWithdrawal повинен бути змінений, щоб код мав вигляд: ProcessWithdrawal( balance, withdrawalAmount, withdrawalDate ); Потрібно відмітити, що якщо подивитись навпаки, то можна побачити схожу проблему. Якщо виявляється, що існує об’єкт WithdrawalTransaction, а потрібно передавати значення декількох його властивостей в інший метод: ProcessWithdrawal( withdrawal.GetCustomerId(), withdrawal.GetBalance(), withdrawal.GetWithdrawalAmount(), withdrawal.GetWithdrawalDate() ); то потрібно розглянути можливість зміни інтерфейсу методу ProcessWithdrawal, щоб передавати об’єкт, а не його окремі властивості. Будь-який з даних підходів може бути правильним чи ні – це залежить від того, чи абстракція інтерфейсу ProcessWithdrawal() є тим, що очікує отримати чотири окремі порції даних, чи цілий WithdrawalTransaction об’єкт.
Рівні рефакторингу
Термін рефакторинг іноді використовується в широкому значенні як будь-яке внесення змін в програму – з метою виправлення помилок, додавання функціональності, зміни дизайну тощо. Таке використання даного терміну не є точним і його потрібно намагатись уникати. Рефакторинг наголошує не просто на внесенні змін як таких, а на їх цілеспрямованості на досягнення покращення коду, що тягне за собою стійке покращення якості програми і запобігає широко відомій руйнівній спіралі програмної ентропії.
Приклади можливих кроків в процесі рефакторингу Читайте також:
|
||||||||
|