|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.02.2021, 17:03 | #1 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Архитектурная идиома, в которой задействован так называемый заместитель (ргоху).
Здравствуйте! Вопрос из книги Брюса Эккеля, некоторые детали задания мне не ясны, хотелось бы их прояснить.
Цитата:
Код, на данный момент. https://rextester.com/BTXPS4354 Код:
Других вариантов не могу найти)) Если передать в заместитель указатель, то как-то я могу узнать и могу ли вообще это сделать, что он принадлежит Implementation1 или Implementation2 не могу сообразить, они же являются частью Subject. Идея проста, как молоток, проверить, если это Implementation1, то создать с помощью new указатель на Implementation1, если это Implementation2 создать указатель на Implementation2, иначе присвоить значению поля класса Proxy значение Subject. Но как проверить?... Вот в чём вопрос. Надеюсь, что мои пояснения более или менее ясны! |
|
15.02.2021, 18:30 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
|
15.02.2021, 21:13 | #3 | |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Цитата:
|
|
15.02.2021, 23:30 | #4 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Код:
|
16.02.2021, 07:20 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,493
|
|
16.02.2021, 13:53 | #6 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Я храню указатель на Subject, но как тогда динамически и переключаться с одной реализации на другую. Я об этом спрашивал, иначе у меня ничего путного не выходило. Здесь я в конструкторе автоматом, видимо, в этом и есть динамическое переключение, переключаю без особых заморочек...
Код:
|
16.02.2021, 14:18 | #7 | ||
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
Цитата:
Цитата:
Код:
|
||
16.02.2021, 15:44 | #8 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
Ну, а чем не условие попытка узнать класс инициализируется Implementation1 или Implementation2?! Я не знаю, что имел автор книги, под задачей:Я её понял так. То, что преобразование лишний раз применять не нужно - я читал, что это плохой стиль программирования - я понял, но бывают ситуации, когда можно и применить). Вот я и применил...
|
16.02.2021, 15:47 | #9 |
Форумчанин
Регистрация: 22.01.2014
Сообщений: 313
|
|
16.02.2021, 15:54 | #10 |
Форумчанин
Регистрация: 16.11.2020
Сообщений: 243
|
Еще раз прочитайте и ответьте, как созданный вами объект будет динамически переключаться между реализациями? Разве вы сами не видите, что фактически сменить реализацию можно только пересозданием вашего объекта?
Смысл в таком объекте? Гораздо выгодней в таком случает сделать шаблонный класс и статически получить реализацию. Да. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Pascal Матрицы - элемент bij которой равен сумме элементов данной матрицы расположенных в области, определяемой индексами i,j так, как показано на рисунке | users1 | Помощь студентам | 0 | 12.01.2017 06:04 |
Модифицировать программу так, чтобы она осуществляла поиск подматрицы n,в которой сумма элементов главной диагонали наибольшая | АсяЯ | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 05.11.2016 16:57 |
архитектурная компьютерная программа для создания дизайна | igori.alekseev | Свободное общение | 2 | 16.01.2009 16:37 |