Простите меня за эти дрянные заметки, которые я делал. Я не хочу его редактировать и доводить до совершенства, потому что поздно, а мне лень. Честно говоря, кто это вообще будет читать. Лучше всего узнавать об ООП и TDD из самих книг.
Тем не менее, я также должен работать лучше, потому что общение является ключевым. Кроме того, я чувствую, что начинаю сначала, и это хороший обзор, потому что я получаю вещи в миллионный раз. ура.
…
Глава 9. Возвращение к объектам и классам. Файловая система.
Святое дерьмо. Не знаю, что случилось, но мое путешествие по самообучению получило сильный удар по лицу, а затем две ночи назад у меня случился кризис четверти жизни, который разбудил меня — в прямом и переносном смысле. Наверное, потому что я был везде и нигде, и это мешает следовать рутине и расписанию. Во всяком случае, полу-возобновление моего прогресса. Кроме того, подумайте о том, чтобы пройти курсы обучения в колледже осенью. Я должен признать, что мне нужен внешний толчок, чтобы быть продуктивным в моем обучении. Я просто ненавижу иметь какие-либо долги.
Глава 8
В главе 8 рассказывается о том, что все является объектом, и вы отправляете сообщения для взаимодействия с объектами. Классы тоже являются объектами, но они представляют собой фабрики, создающие экземпляры объектов. Итак, план создания экземпляров класса.
В проекте есть структура и поведение экземпляров.
Каждый экземпляр класса имеет одинаковое поведение (сообщения) и переменные экземпляра. Переменные каждого объекта не являются общими. Таким образом, у вас может быть два объекта-человека с переменной экземпляра name. Но, конечно, имена разные.
Пользователи знают, что может делать объект, по своему набору сообщений, но нет необходимости знать, как реализованы эти методы. Это возможный переход к инкапсуляции, объект имеет частные данные, которые представляют его внутреннее состояние. Вы не можете получить доступ к данным, если у объекта нет сообщения, позволяющего раскрыть данные. Состояние объекта — это значения переменных экземпляра каждого объекта.
Глава 9
В этом руководстве показано, как создать файловую систему, включающую два класса:
MFDirectory и MFFile.
Были созданы классы, переменные экземпляра и методы.
В этой главе два класса имеют одни и те же сообщения, но с разными реализациями. Дело в том, что я мог отправить одно и то же сообщение каждому экземпляру класса, и экземпляры выбирали подходящий метод для выполнения.
Здесь играет роль позднее связывание, и я пока не знаю, как оно работает.
Распределение обязанностей и делегирование
Делегировать — у меня есть каталог, который может быть набором других каталогов или файлов. К счастью, существует класс OrderedCollection, в котором есть метод add: для добавления в коллекцию. Это означает, что объект может делегировать часть своих задач другому объекту.
- MFDirectory имеет переменную экземпляра, файл, который представляет собой набор папок и файлов.
- addElement: — это метод добавления файлов, который использует метод add: из OrderedCollections для выполнения своих обязанностей.
Распределение ответственности –размер и методы поиска
- Модульное мышление: каждый метод определен так, чтобы сосредоточиться только на поведении своего класса. Это позволяет нам легко добавлять или удалять классы во всей системе без необходимости изменять всю систему.
- Полиморфизм — тот факт, что мы можем, например, добавить еще один класс и использовать те же сообщения без необходимости создавать разные сообщения. Таким образом, мы можем отправить новый размер класса или выполнить поиск: сообщения
- В процедурном примере вы видите, что метод включает проверку того, является ли файл классом MFFile или классом MFDir. Если бы мы решили изменить класс MFFile на другой класс, нам также пришлось бы изменить код в методе sizeOfFiles:.
- Модульность вещей позволяет нам разделить обязанности, чтобы мы могли повторно использовать код.
- Например, определение размера файлов или каталогов — это собственный метод, и его не должно быть в процедурном методе, потому что мы не сможем использовать его где-либо еще.
Это только верхушка айсберга, поскольку в главе 9 упоминается, что тема наследования будет обсуждаться позже.