bootcd
Как в на данный момент вижу объекты:
1. Есть необходимость реализовать набор функций. CRUD.
2. Эти функции работают вокруг одной темы. В частности они обеспечивают работу с ОРМ, касаемо выделенной темы. Я приводил в пример информацию о серверах организации.
3. Информация о сервере представляет собой набор данных касаемо самого сервера (формфактор, имя в домене и тп) и сопутствующих данных, например информация о доступе по протоколу ssh извне через IP адрес, выданный провайдером, информация о котором лежит в другом месте БД.
4. Я выделяю абстракцию “работа с серверами”. В нее могут входить данные, необходимые для работы (например данные из веб-формы или id записи в таблице БД) и методы, которые мне позволят оперировать с ОРМ через эти данные.
Вот пройдёт год, два, три, ты по этому описанию сам ничего не поймёшь. А если ты ещё и десяток программ таких напишешь за это время - тоже про серверы, про базы данных, про формы, про соединения, - то ты даже вспомнить не сможешь, про что ты там думал, когда это проектировал.
bootcd
То есть, по факту - это менеджер, который ходит и носит данные в БД, из нее или их там обновляет.
У меня возникли проблемы с пониманием объекта этого менеджера. Потому что по факту в классе “менеджер”, мы создаем инстансы не сколько самого менеджера, а разных по сути менеджеров (менеджер для создания, менеджер для удаления, менеджер для обновления и тд.)
В итоге я отказался от этой идеи и просто завел набор статических методов, используя класс как неймспейс.
Вопрос именно в том, где у меня кардинальное непонимание принципов ООП, что я пришел вот к такому?
Если у тебя есть класс Менеджер, то с его помощью можно создать сто абсолютно одинаковых менеджеров, как будто склонированных. И это будут абсолютно разные объекты все, хоть у них вообще всё будет одинаковое. У каждого из этих объектов есть своя жизнь. Эти разные жизни могут протекать абсолютно одинаково, но при этом это абсолютно разные жизни.
Это я тебе всё говорю потому, что ты не различаешь классы и объекты. Настолько твой уровень никакой. То есть ты их путаешь. Про существование конкретного класса и абстрактного класса ты вообще не знаешь. Там много всяких понятий, и что? вот ты называешь словами то, что этими словами не является.
bootcd
Вопрос именно в том, где у меня кардинальное непонимание принципов ООП
А с чего ты взял, что ты их знаешь?
Вот ты пишешь
bootcd
Я написал набор классов, который состоит из статических методов, как раз, чтобы инкапсулировать работу с ORM.
Я думаю: “Ну вроде человек пишет про инкапсуляцию. Наверное, он знает, что такое инкапсуляция, раз пишет.”
Потом ба-бах!
bootcd
По идее можно делать объект типа ServerRepo:
И в зависимости от необходимости в клиентской части укладывать в него нужное поле:
server = ServerRepo()
server.data = form_data
server.create()
или
server.id = id
server.new_data = form_data
server.update()
Я думаю: “Что-то он даже не видит, что у него нарушение инкапсуляции идёт. Так он, наверное, не знает про инкапсуляцию? Иначе зачем он про неё сначала пишет, а потом тут же её нарушает?”
Короче, ситуация напоминает, когда шизофреник подходит такой и начинает с тобой разговаривать. На умные темы говорит, умными словами, всё в таком духе. Но тут ты понимаешь, что он пошёл по второму кругу и уже то же самое говорит, но уже с другим каким-то смыслом. Потом ты ему задаёшь вопрос “зачем рыбке зонтик?” или что-то такое по той теме, которую вот он только что говорил, и он тебе выдаёт что-то там, по чему ты понимаешь, что он вообще не соображает, что говорит. Это он слова говорит эти все, а что они значат, он вообще не знает. Это какой-то мир такой шизофренический у него. И так ты понимаешь: “Блин, я полчаса его слушал внимательно, а он, оказывается, шизик какой-то просто с расщеплённым сознанием и тому подобным.”
Поэтому я тебе и говорю, вот чтобы тебе сейчас не перессказывать сто пятьсот книжек, которые ты не читал, и не переписывать их сюда целыми страницами, как это бывает здесь частенько, я тебе говорю: “Начни с азов. Ты не знаешь азов. У тебя не с ООП проблема. У тебя с программированием проблема. Ты с чего-то взял, что раз ты сисадмин (хотя мы это даже не проверяли ещё, тоже на веру брать не будем сходу так), то ты умеешь автоматически программировать, потому что программирование - это тоже про компьютеры.” Это искажение. Оно возникает у сисадминов, когда им кажется, что программирование - это такое сисадминство, что есть якобы какая-то связь между этими двумя деятельностями.
Давай, присоединись к решение задачек тут тупых, мы посмотрим, какой ты программист. Если тебе это надо, конечно. А то вдруг тебе надо просто ходить и всем рассказывать, какой ты программист, а уметь не надо вообще. Мы же даже так ответа и не получили, зачем тебе срочно понадобилось соблюдать ООП-принципы, причём так срочно, что ты даже не успел их узнать вообще. Наверное, что-то подгорает. Надо срочно что-то делать, а то молоко убежит.