Вопросы по ООП в MQL5 - страница 56

 
Aleksey Mavrin:

Вы уже столько раз мне сказали, что я дурак и ничего не понимаю, что я горжусь своей выдержкой, что давно не послал вас заслуженно нахер)

По сути - вложенный класс делает необязательным публичные методы для приватных полей, именно про это нарушение инкапсуляции вы пишете. Какие то ещё аргументы?

Вы так устойчиво демонстрируете свою глупость, что скорее я вас пошлю заслуженно туда.

Вложенный класс не делает того, что вы про него пишите. А задачу паттерна Хранитель можно решить и без вложенного класса и без лишних публичных методов.

Напомню: здесь есть пример с вложенным классом и публичными методами.

 
Dmitry Fedoseev:

Вы так устойчиво демонстрируете свою глупость, что скорее я вас пошлю заслуженно туда.

Вложенный класс не делает того, что вы про него пишите. А задачу паттерна Хранитель можно решить и без вложенного класса и без лишних публичных методов.

Давайте разберёмся, кто в итоге пойдёт))

что это не делает вложенный класс?

Вы писали что "нарушается инкапсуляция, потому что создаются публичные методы для приватных полей".

Вложенный класс имеет доступ к приватным полям, не требуя создавать публичные методы.

з.ы. Вы здесь завсегдатай судя по рейтингу. Но вам бы поучиться коммуникациям и диалогу. Но это видать не требуется вам по жизни.

 
Aleksey Mavrin:

Давайте разберёмся, кто в итоге пойдёт))

что это не делает вложенный класс?

Вы писали что "нарушается инкапсуляция, потому что создаются публичные методы для приватных полей".

Вложенный класс имеет доступ к приватным полям, не требуя создавать публичные методы.

з.ы. Вы здесь завсегдатай судя по рейтингу. Но вам бы поучиться коммуникациям и диалогу. Но это видать не требуется вам по жизни.

Напомню: здесь есть пример с вложенным классом и публичными методами (то есть, вложенный класс совсем не помог избавится от необходимости создания публичных методов).

Вложенный класса - это всего лишь вопрос видимости класса, но не объекта. Вложенный класс, всего лишь, не позволяет создать объект этого класса, за пределами того класса в котором он описан. Поэтому идти придется вам.

 
Aleksey Mavrin:

Вот именно - Правильная структура. Для этого и стоит учитывать все возможные варианты этой самой структуры, проанализировать их плюсы минусы в данной задаче (с учетом требований расширяемости и обслуживания и т.п.) и выбрать лучший.

И сами паттерны пресловутые (какие бы конкретно не подразумевались) здесь даже не вариант структуры, а просто опорная точка для работы мозга. Типа "Если задача подходит под описание задачи паттерна Х, значит её можно решить применив паттерн Х", но можно решить ещё и кучей других способов.

И вообще те базовые 27 паттернов - это ведь в своё время родилась как бы как подсказка программистам по типовым задачам, как их решить соблюдая принципы ООП. Если задачи соблюдать принципы не стоит, как у Дмитрия со структурами, то и паттерны никакие не нужны.

спасибо, хороший пост

Вы отличаетесь от остальных участников обсуждения ;)

 
Dmitry Fedoseev:

Напомню: здесь есть пример с вложенным классом и публичными методами (то есть, вложенный класс совсем не помог избавится от необходимости создания публичных методов).

Вложенный класса - это всего лишь вопрос видимости класса, но не объекта. Вложенный класс, всего лишь, не позволяет создать объект этого класса, за пределами того класса в котором он описан. Поэтому идти придется вам.

Нет )) глупость же )) Вложенный класс имеет доступ КО ВСЕМ ПРИВАТНЫМ ПОЛЯМ ТОГО КЛАССА В КОТОРЫЙ ОН ВЛОЖЕН. Вы этого не знаете? понятно тогда что не о чем говорить))

И это не считая той ахинеи которую вы писали что для Снимка надо копировать весь объект..))) Получается ... не буду возражать если не скоро вернётесь ))

 
Igor Makanu:

спасибо, хороший пост

Вы отличаетесь от остальных участников обсуждения ;)

Игорь, спасибо и вам, и на добром слове) и то что вы создаете интересные темы для конструктивного взаимно-полезного обсуждения ;)

 
Aleksey Mavrin:

Нет )) глупость же )) Вложенный класс имеет доступ КО ВСЕМ ПРИВАТНЫМ ПОЛЯМ ТОГО КЛАССА В КОТОРЫЙ ОН ВЛОЖЕН. Вы этого не знаете? понятно тогда что не о чем говорить))

И это не считая той ахинеи которую вы писали что для Снимка надо копировать весь объект..))) Получается ... не буду возражать если не скоро вернётесь ))

А что вы называете вложенным классом?

Про снимок я вообще здесь ничего не писал.

 
class C1{
   protected:
      int x;
      class C2{
         protected:
         public:
         C2(){
            x=1;
         }
      };      
   public:
};

Где доступ к x из С2?

Повторяю, вложенных класс - это только вопрос видимости класса для создания объекта. Объект класса С2 можно создать только внутри класса C1. И все. Это единственное отличие от записи типа:

class C1{
   protected:
      int x;
   public:
};

class C2{
   protected:
   public:
   C2(){
      x=1;
   }
}; 


Но вы, конечно же, вложенным классом что-то другое называете? Расскажите что.

 
ахах )
 
TheXpert:
ахах )

Тоже не знал?

Причина обращения: