Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
BlackFox
Member

Откуда: Брянск
Сообщений: 15
класс A входит в класс B, можно ли получить из класса А доступ к __property свойствам класса В

class A
{
};

class B
{
private:
	A* С;
public:
	__property int Value = { read = GetValue, write = SetValue };
};

то есть из свойства С получить доступ к Value?
6 май 20, 16:39    [22128304]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50033

Можно, но это плохой дизайн. Лучше пересмотри сою иерархию классов.

Posted via ActualForum NNTP Server 1.5

6 май 20, 16:40    [22128310]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
BlackFox
Member

Откуда: Брянск
Сообщений: 15
Здесь случай когда, например, класс B люди, а класс А машины.
Как из методов машины узнать человека?
6 май 20, 16:46    [22128316]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
BlackFox,

class Person;

class Car
{
public:
    Car(Person *p): person(p) {}
    Person *person;
};

class Person
{
public:
    Person(): car() {}
    Car *car;
};
6 май 20, 16:57    [22128325]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
BlackFox
Member

Откуда: Брянск
Сообщений: 15
спасибо
6 май 20, 17:05    [22128332]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
BlackFox,

поймите правильно - Вам лучше почитать азы про ОО автора Гради Буч, одного из основателей нотации юмл и т.д. и т.п..

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


по поводу механизации (т.е. это идёт после декомпозиции и нахождения сущностей в поставленной задаче) - оперировании данными или глаголами от наследника в базовом классе... Лучше всего на примере:
- класс А это животное
- класс В - это собака
- класс С - это кошка
у класса А есть глагол(метод) - голос. ну или например запрос свойства - длины усов. тогда всё логично и стройно - мы у сущности А не знаем на момент определения как оно будет голосить (или вообще будет ли голос?) - делаем чисто виртуально (тем самым мы говорим - у животного должно быть вот реализация этой хрени). Или делаем реализацию по умолчанию - например для всех животных надо чтоб мычало, но как виртуальным методом...
а по поводу длины усов - мы не знаем, они вообще существуют у жевотного или нет, а не то что длину усов. окейно - делаем приватный метод - запрос у чайлда длину усов и делаем это виртуальным методом. у кошки перекрываем эти два метода - голос, мяукаем, а длина усов - возвращаем локальное свойство длина усов . Для собаки аналогично - лаем и длина усов - ну нет у неё...возвращаем нуль..

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

(круглый)
8 май 20, 03:17    [22129104]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
kolobok0
BlackFox,

поймите правильно - Вам лучше почитать азы про ОО автора Гради Буч, одного из основателей нотации юмл и т.д. и т.п..

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

Так тут и нет наследования. Тут даже инкапсуляции нет. Тут есть две связи между объектами: владение и принадлежность. Не вижу криминала. Не понятно только что машина будет сообщать человеку через вызовов методов человека? Ну... может сообщить о превышении скорости.
8 май 20, 10:08    [22129170]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
Ещё машина может сообщать человеку:

- О попытке угона.
- О необходимости тех. обслуживания.
- О низком уровне топлива.
- О наличии ментовских радаров.
- О том что водитель заснул за рулём. Разбудить. Метод Человек::wakeUp().
8 май 20, 10:25    [22129179]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
petrav,

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

дальнейшее предложение вызывать человека из машины - это веселее...
ну типо тахометр изменил значение, кхм... и должен показать человеку что дескать у меня 1000 оборотов. или всё же он тупо это имеет как свойство и пофигу кто(или что - ну например кенгуру или видеокамера) смотрит на тахометр и смотрит ли вообще? из жизни мы знаем что машина будет показывать обороты даже не двигаясь (вывесили на подъёмнике и через одб2 газуем с компьютера - проводим диагностику) - при этом как видно что машина это делает без человека и человек этот (хозяин возможно) сидит пьёт кофе пока его машину диагностируют...


попытка угона - это есть совокупность факторов для машины - качнули или заводят двигатель без ключа(может это не угон а эвакуатор делает - терминология определяется ещё кучей внешних факторов. для машины это вообще левое).
необходимость обслуживания (то же самое - есть признаки. мозги машины могут об этом знать или тупо по паспорту это проблема водятла - заехать на ТО через 20 тыкм).
низкий уровень топлива - уже выше было.
наличие ментовских радаров - обычно это навесное оборудование, которому так же пофигу есть ли водитель. скорее всего оно активизируется по включению питания.
заснул...конкретный человек который передали в конструктор..другой индивидум(про мартышку опустим - возможно мы распознаём только людей на камеру) не может. кхм... человек подъём...тут вот я сомневаюсь...подать звук, ударить шокером(это чёрный юмор) - да... а вот по разъёму машина-человек подать сигнал открыть веки - то биомеханика уже..пока рановато в нынешних реалях...имхо..больше думаю вероятность что у человека бируши и он нифига не может проснуться и не слышит(условно)...

9 май 20, 02:51    [22129758]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 1341
kolobok0
поймите правильно - Вам лучше почитать азы про ОО автора Гради Буч, одного из основателей нотации юмл и т.д. и т.п..

читал " Буч Гради - Объектно-Ориентированный Анализ и Проектирование"
очень тяжёлая нудятина на 600 страниц.
гораздо лучше заходит "Голуб Ален - верёвка достаточной длины, чтобы выстрелить себе в ногу"
9 май 20, 10:09    [22129799]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
полудух
...нудятина на 600 страниц....


автор нудятины - автор единственной технологии (превращение от хотелок бизнеса в код)..
всё остальное - попытки создать пародии на тему ах как классно можно сделать на коленке и попроще...

ну вот программисты которые не читали и не делали по этой нудятины стэп бай стэп и пишут на яве какаве или там на си плас плас по ассемблерному...и таких 99% в программерских конторах...

да да знакомо!!

(круглый)

Сообщение было отредактировано: 9 май 20, 18:06
9 май 20, 18:07    [22129918]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
kolobok0
полудух
...нудятина на 600 страниц....


автор нудятины - автор единственной технологии (превращение от хотелок бизнеса в код)..
всё остальное - попытки создать пародии на тему ах как классно можно сделать на коленке и попроще...

Я эту книгу от Гради Буча прочитал на пятом курсе. Но ведь UML умер много лет назад, по результатам. Потому что был кривой. И есть кривой.

Сообщение было отредактировано: 9 май 20, 18:16
9 май 20, 18:14    [22129921]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 1341
kolobok0
полудух
...нудятина на 600 страниц....


автор нудятины - автор единственной технологии (превращение от хотелок бизнеса в код)..
всё остальное - попытки создать пародии на тему ах как классно можно сделать на коленке и попроще...

ну вот программисты которые не читали и не делали по этой нудятины стэп бай стэп и пишут на яве какаве или там на си плас плас по ассемблерному...и таких 99% в программерских конторах...

да да знакомо!!

(круглый)

слушай, полно источников качественного ООП-кода, которые гораздо проще и быстрее понять.
можно даже у Страуструпа набрать рабочих примеров иерархии классов (про которые и Грэди пишет)
просто изучая C++ уже понимаешь, как должно ООП выглядеть
причём именно изучая C++ ты понимаешь, как оно на самом деле должно выглядеть
т.е. в остальных языках ООП слегка/сильно извращён, а вот тут всё чётко, понятно и по делу.
и никакие ассемблерные вставки (шта?) при этом не лезут в голову (от них как раз все отговаривают)
А вот читать 600 страниц одну и ту же муть про машины фаршированные персонами вместо того чтобы на паре-тройке примеров понять тему - вот это дичь.
Первопроходец != офигенный. Обычно это означает "куча ляпов, которые потом годами отлавиливают и исправляют".

зы: пример из ПХП про интерфейсы, который описывает "duck typing":
+
# ОТЛИЧНЫЙ ПРИМЕР, ДЛЯ ЧЕГО НУЖНЫ ИНТЕРФЕЙСЫ:
# An example of duck typing in PHP
interface CanFly
{
    public function fly();
}

interface CanSwim
{
    public function swim();
}

class Bird
{
    public function info()
    {
        echo "I am a {$this->name}\n";
        echo "I am an bird\n";
    }
}

## some implementations of birds
class Dove extends Bird implements CanFly
{
    var $name = "Dove";
    public function fly()
        {echo "I fly\n";}
}

class Penguin extends Bird implements CanSwim
{
    var $name = "Penguin";
    public function swim()
        {echo "I swim\n";}
}

class Duck extends Bird implements CanFly, CanSwim
{
    var $name = "Duck";
    public function fly()
        {echo "I fly\n";}

    public function swim()
        {echo "I swim\n";}
}

## a simple function to describe a bird
function describe($bird)
{
    if (!$bird instanceof Bird)
        {die("This is not a bird. I cannot describe it.");}

    $bird->info();
    if ($bird instanceof CanFly)
        {$bird->fly();}
    if ($bird instanceof CanSwim)
        {$bird->swim();}
}

// describe these birds please
describe(new Penguin);
echo "---\n";

describe(new Dove);
echo "---\n";

describe(new Duck);


Сообщение было отредактировано: 9 май 20, 20:08
9 май 20, 20:06    [22129943]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
полудух,

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

(круглый)
ЗЫ
язык вторичен. для меня удобнее си плас плас, хотя в активе более десятка языков.
ЗЫ ЗЫ
посыл про ассемблер от меня, насколько понял из Вашего поста, Вы не поняли. я не говорил про ассемблерные операторы, я говорил о применении объектно ориентированных языках по ассемблерному - именно так 99% и юзают и яву-какаву и си плас плас и си бимоль и т.п. языки (без первичных шагов = анализа и проектирования). и выше в разборе объявлений классов от ТС мы видим что предлагаемое взаимодействие не жизненно, не из жизни то бишь. и если завтра заказчик придёт и скажет - а человек может иметь более одной машины, то автор этого кода будет рассуждать какая фигня эта технология ОО, не понимая что не технология виновата и а попытка поверхностно почитать про ОО, обозвать всё тягомотиной и на не верных наблюдений сделать не правильные выводы.

Сообщение было отредактировано: 10 май 20, 16:39
10 май 20, 16:35    [22130168]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
petrav,

UML это попытка записать результат ОО анализа и проектирования (ООА и ООП которые абривиатуры. заметьте П - это ПРОЕКТИРОВАНИЕ а не программирование). Их несколько таких нотаций (UML языка в смысле). возможно что то удачно, что то не удачно. Но это ни в коей мере не умоляет сам подход ОО при разработки софта. Данный подход он идёт от жизни, статичен (т.е. правильные найденные сущности не изменны), позволяет просчитывать инвариантность будущих потребностей заказчика, позволяет сократить код, способствует уменьшению дублежа кода.
я честно говоря не видел подобных технологий обладающих такими существенными скилами при производстве софта.

(круглый)
ЗЫ
Вы можете слышать другие мнения про ОО технологию, но как правило - это идёт от непонимания её, а не от опыта многолетнего применения. А то что Вы используете тот или иной язык позволяющий идти в кильватере ОО технологии - это абсолютно не значит, что Вы понимаете или используете ОО технологию. Более того, без понимания данной технологии использование таких языков - заводит в тупик обычно (таких ситуаций на форумах полно = типо как узнать яйцу форму лотка в котором он лежит).

Сообщение было отредактировано: 10 май 20, 16:50
10 май 20, 16:49    [22130170]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
kolobok0
petrav,

Более того, без понимания данной технологии использование таких языков - заводит в тупик обычно (таких ситуаций на форумах полно = типо как узнать яйцу форму лотка в котором он лежит).

А человеку можно узнать в каком окружении он живёт? А машине можно узнать в каком окружении она движется?

Я вот чего не понял. Ваш виртуальный метод "Животное::Голос()" Вы признали хорошим примером ООП.

А мой пример метода "Человек::Проснись()" Вы признали плохим примером ООП сославшись на биомеханику, не может машина вызвать метод человека. А давно у собак есть разъём и поддержка вызова виртуальных функций -- биомеханика позволяет?
10 май 20, 17:28    [22130179]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 1341
kolobok0
я бы не хотел уходить в некий спор в вакууме, но я готов чисто технически привести тут плюсы и минусы применения ОО технологии в программировании. а дальше вы сами решите - много ли вы видели таких контор, где применяют эту технологию.

А зачем? Я что, протестую против пользы ООП? Я говорю, чтобы качественно делать ООП не обязательно читать Грэди Буча.
посыл про ассемблер от меня, насколько понял из Вашего поста, Вы не поняли. я не говорил про ассемблерные операторы, я говорил о применении объектно ориентированных языках по ассемблерному - именно так 99% и юзают и яву-какаву и си плас плас и си бимоль и т.п. языки (без первичных шагов = анализа и проектирования).

Я так понимаю, Страуструп так же относится к этим 99% и ООП юзать НЕ умеет?
Потому что всё что он написал прочитало чуть менее, чем 100% си-плюс-плюсников.
И уж треть точно делает так, как там написано...
Да и другие тоже книжки... Грэди Буч не пишет ничего такого нового про ООП.
Всё тоже самое написано и в других книгах, только менее нудно и более сухо (меньше воды = хорошо).

Сообщение было отредактировано: 10 май 20, 22:16
10 май 20, 22:15    [22130300]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
petrav,

животное - это общее между собакой и кошкой. Вы действительно это не поняли-услышали?
наверное я плохо объяснил - простите...

(круглый)
11 май 20, 13:35    [22130550]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
полудух,

страуструп - это программирование+математика. именно такой вектор изложен в книге.
кнут - то больше математика+программирование. там ещё более жёстко для понимания.

для страуструпа - бизнес задачей было создание прикладной библиотеки. с чем он замечательно справился. и для понимания духа стл - лучше книги нет. но учить по страуструпу ОО технологию - это всё равно что по физике твёрдого тела учить схемотехнику.

буча не то что читать нужно. прочитав надо сделать хотя бы один проект как там написано стэп-бай-стэп. иначе будет как Вы сказали нудятиной и много воды. это совсем не понятно когда человек разрабатывает в одну голову - задачи типо хэйлохтымир. и 200% необходимо когда собираются пилить проект более одного разработчика.

удачи вам
(круглый)
ЗЫ
заткнулся.
думаю, что мысль основную уже высказал.
11 май 20, 13:41    [22130553]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
kolobok0
petrav,

животное - это общее между собакой и кошкой. Вы действительно это не поняли-услышали?
наверное я плохо объяснил - простите...

(круглый)

С такими иерархиями аля Животные, ГеометрическиеФигуры и т.д... я знаком уже лет 20-ть.

Давайте я свой вопрос переформулирую. У нас есть две сущности, которые могут принимать самостоятельные решения и оказывать друг на друга влияние: Человек и Автомобиль. Скажите, почему они в нашей ООП модели не могут друг с другом взаимодействовать через программные интерфейсы? В обоих направлениях.
11 май 20, 14:06    [22130561]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
petrav,

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

вот такая вот разница.
(круглый)
ЗЫ
Про передачу в конструктор автомобиля одного человека - то вообще круглый конь в квадратном вакууме.
ЗЫ ЗЫ
Ну или по другому... Человек знает и воздействует на автомобиль - взял, завёл, рулит, врезался, заглушил, отремонтировал, выключил, снял АКБ, разобрал на запчасти... Попробуйте список таких-же глаголов в другую сторону

Сообщение было отредактировано: 11 май 20, 14:15
11 май 20, 14:14    [22130562]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
kolobok0
petrav,

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

Глаголом было "Разбудить" и "ПослатьСообщение" — прямое воздействие от Авто на Человека. Тахометр тут ни причём. Кошек, которые смотрят на тахометр и ведут автомобиль, тоже рассматривать не будем.

kolobok0
Про передачу в конструктор автомобиля одного человека - то вообще круглый конь в квадратном вакууме.

Тут просто пример очень простой, но топик-стартеру больше и не нужно. Я считаю мой код корректным с точки зрения ООП. А так я тут мог бы разойтись на классы РеестрСобственности, абстрактный интерфейс IВодитель или может РольВодитель. Но зачем?

kolobok0
Ну или по другому... Человек знает и воздействует на автомобиль - взял, завёл, рулит, врезался, заглушил, отремонтировал, выключил, снял АКБ, разобрал на запчасти... Попробуйте список таких-же глаголов в другую сторону

А почему список глаголов в другую сторону должен быть таким же?
11 май 20, 14:36    [22130573]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
kolobok0
Member

Откуда:
Сообщений: 2104
простите. напишу последний раз. а то как то я о мягком Вы о тёплом, кмк...

petrav
..
Глаголом было "Разбудить" и "ПослатьСообщение" — прямое воздействие от Авто на Человека. Тахометр тут ни причём. Кошек, которые смотрят на тахометр и ведут автомобиль, тоже рассматривать не будем.

....считаю мой код корректным с точки зрения ООП....

...А почему список глаголов в другую сторону должен быть таким же?


"разбудить" и "послать сообщение" как бы подразумевают синхронность. если заменить (на мой взгляд - более корректные) на "выдать звук" и "зажечь табло" - то вот тогда вопросов не было. Даже мартышка бы (или видеокамера) это воспримет. Т.е. это от жизни. Мы можем конечно же как пример разобрать управление локомотивом, где учитывается обратная связь. Но увы - там нет интерфейса разбудить. там есть таймер и кнопка подтверждения от человека, которую он должен нажимать периодически. не нажал - заснул. заметьте - я стараюсь рассуждать от жизни . А в Ваших словах звучит "тут мог бы разойтись на классы" - понимаете в чём Ваша ошибка? Вы могли бы... у Вас нет критерия достаточности и правильности нахождения сущностей Вы опираетесь только на "мог бы разойтись.... но зачем". А я на жизнь или потребность от жизни - как будет угодно. Соответственно завтра для меня заказчик ничего не изменит в плане пересмотра модели. А для Вас будет переделка классов. вот собственно только и всего.

список глаголов в другую сторону - тем самым я подчеркнул, что взаимодействие данных сущностей не одинаково . Т.е. человек знает о машине, а вот машина не всегда знает о человеке. Скажу большее - она может знать о параметрах на своих сенсорах и конечном списке глаголов заложенных в конструкцию. Например ждать нажатия кнопки А, или там детектировать на картинке кадра закрытие глаз, или там принять от радарной системы фар препятствие на обочине и направить пучёк лазера-излучения фары в данную точку(у бмв такое). Но это абсолютно не значит, что машина может разобрать на запчасти человека.

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

как то так
(круглый)
11 май 20, 15:01    [22130592]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
kolobok0
простите. напишу последний раз. а то как то я о мягком Вы о тёплом, кмк...

Давайте и я в последний раз отвечу. :)

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

Да, это более корректно. Вот такой вариант: человек уснул и он в берушах, машина подаёт сигнал, но человек не слышит. Т.е. машина не может воздействовать на человека. Другой пример: человек нажимает кнопку "Включить кондиционер", а кнопка сломана и человек тоже не может воздействовать на машину. Т.е. сущности вообще не взаимодействуют. И по вашему выходит, что ООП вообще не работает. Т.е. это от жизни.

kolobok0
А в Ваших словах звучит "тут мог бы разойтись на классы" - понимаете в чём Ваша ошибка? Вы могли бы... у Вас нет критерия достаточности и правильности нахождения сущностей Вы опираетесь только на "мог бы разойтись.... но зачем". А я на жизнь или потребность от жизни - как будет угодно. Соответственно завтра для меня заказчик ничего не изменит в плане пересмотра модели. А для Вас будет переделка классов. вот собственно только и всего.

Спорное и самонадеянное утверждение. :)

kolobok0
список глаголов в другую сторону - тем самым я подчеркнул, что взаимодействие данных сущностей не одинаково . Т.е. человек знает о машине, а вот машина не всегда знает о человеке.

Как же машина не знает о человеке если видит движение его зрачков? И знает номер его сотового? Взаимодействие не должно быть одинаковым!

kolobok0
Но это абсолютно не значит, что машина может разобрать на запчасти человека.

Т.е. что бы Сущность1 могла через программный интерфейс воздействовать на Сущность2 — необходимо что бы Сущность1 всё знала о Сущность2 и могла бы последнюю разобрать на части? Это уже вообще противоречит принципам ООП.

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

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

kolobok0
т.е. у машины нет знаний о человеке, а вот человеку реагировать на события от машины - это более правильная колбаса.

В принципах ООП как раз и заложено, что лишние знания об устройстве других сущностей вредны. Знаний быть должно по минимуму.
11 май 20, 16:00    [22130619]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
White Owl
Member

Откуда:
Сообщений: 12501
petrav и kolobok0,

А вам не кажется что вы путаете наследование и взаимодействие классов?

Автомобиль влияет на водителя посредством стрелочек и лампочек на приборной панели. А водитель влияет на автомобиль дергая специальные рукоятки и педали. И все. Это типичное взаимодействие двух классов.
Оба класса предоставляют наружу асинхронные входы. Автомобиль может моргать лампочкой и может быть водитель это увидит. Водитель может жать педаль и может быть эта педаль действительно что-то сделает. Даже если взять умный автомобиль отслеживающий открытые ли глаза у водителя - это все равно взаимодействие классов.

Но это никак не наследование. А ТС хотел именно наследования. И вы начали спорить кто кому принадлежит.
Вот из комбинации автомобиль плюс водитель можно отнаследовать класс "такси". Хотите наследования с авто-тематикой, рассуждайте об автобусах и грузовиках.
12 май 20, 15:50    [22131306]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
White Owl
petrav и kolobok0,

А вам не кажется что вы путаете наследование и взаимодействие классов?

Это просто kolobok0 по началу невнимательно прочёл топик и начал рассуждать о наследовании. Я его поправил и мы давно уже говорим о взаимодействии классов.

White Owl
Автомобиль влияет на водителя посредством стрелочек и лампочек на приборной панели. А водитель влияет на автомобиль дергая специальные рукоятки и педали. И все. Это типичное взаимодействие двух классов.
Оба класса предоставляют наружу асинхронные входы. Автомобиль может моргать лампочкой и может быть водитель это увидит. Водитель может жать педаль и может быть эта педаль действительно что-то сделает. Даже если взять умный автомобиль отслеживающий открытые ли глаза у водителя - это все равно взаимодействие классов.

Я согласен, но kolobok0 считает, что объект Автомобиль не может явно воздействовать на объект Человек. Поэтому взаимодействие классов тут только одностороннее: Человек --> Автомобиль + Человек как наблюдатель за Автомобилем.

Я считаю что в ООП-модели вполне корректно рассматривать воздействие автомобиля на человека. Но kolobok0 не согласен, потому что автомобиль не может разобрать человека на запчасти.
12 май 20, 16:19    [22131346]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
Некоторое время назад я находился под впечатлением акторной модели разработки.
Сюда же до кучи такие фреймфорки как Akka/Kafka/Storm и язык Erlang и его подход
к разработке. Ну и микро-ядро Таннебаума. И мне кажется что я начал понимать старика Кея.
Объекты - суть клетки обменивающиеся сигналами. Или сообщениями. Такая модель очень
жива и естественна. Она напоминает сеть в миниатюре. Тоесть каждый объект - суть хост
в концепции IP-protocol. И вся сеть не страдает или не болеет от падения или от отказа
в обслуживании одного объекта-хоста. Она - продолжает работать. Такая степень ослабления
взаимодействия позволяет писать и отлаживать не программный комплекс а отдельные
микро-объекты которые существуют вполне себе сами. И могут быть под отладчиком.
Или под профайлером независимо от перформанса всей системы. Эти-же объекты
могут обновить свою версию в онлайне (Erlang) или продублироваться для перформанса
в пулы (Akka/Kafka) и процессить больше сообщений.

Несколько лет назад я пилил свой географический анализатор сетевых атак. Основная
идея была в том чтобы визульна на географической карте или на квадрате IP-v4 адресов
представить угрозу как некий прямоугольник. Далее админ безопасности в режиме диалога
или команд конфигурирует iptables в соотвествии с обобщенными свойствами адресов.

К сожалению ничего из этого проекта я толком не реализовал. Главная причина - растущая
сложность этого графического приложения. Оно стало монстром. Оно втягивало слишком
много функционала хотя его задача была - только в интеракции с логом событий. Или
с ендпоинтом сообщений. Типа AMQP. И сегодня я принял решение выкинуть нахер старое
приложение и переписать его на принципах взаимодействия сообщений в рамках
локального хоста или IPC.

К чему это я все. Мне не помогало ООП. Оно играло важную роль. Но его было недостаточно
чтобы разбить этот монолит на еще более тонкие части (модули или микросервисы да похер
как называть. Неважно). Важно что я смогу собрать своё внимание только на небольшой
части функционала.
12 май 20, 17:36    [22131420]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
Если я правильно понял.

mayton

И сегодня я принял решение выкинуть нахер старое приложение и переписать его на принципах взаимодействия сообщений в рамках локального хоста или IPC.

К чему это я все. Мне не помогало ООП. Оно играло важную роль. Но его было недостаточно чтобы разбить этот монолит на еще более тонкие части (модули или микросервисы да похер как называть. Неважно).

Я думаю если ООП тут не помогло, так и разбитие на микросервисы не поможет.

mayton
Важно что я смогу собрать своё внимание только на небольшой части функционала.

В смысле? А в парадигме ООП вы не могли собрать своё внимание на небольшой части функционала? Ну так сейчас вам придётся озадачится межпроцессным взаимодействием этих кирпичиков из мира ООП. Будет ещё сложнее.
12 май 20, 18:07    [22131440]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
petrav

mayton
Важно что я смогу собрать своё внимание только на небольшой части функционала.

В смысле? А в парадигме ООП вы не могли собрать своё внимание на небольшой части функционала? Ну так сейчас вам придётся озадачится межпроцессным взаимодействием этих кирпичиков из мира ООП. Будет ещё сложнее.

Не знаю. ООП последних 30 лет ... особенно в части С++ слишком циклиться на технических
вопросах. Например как похитрее запрятать приватное поле что.... (!) получить к нему доступ
снова (!!) через какой-то гребаный указатель. Простите. Сколько лет я в энтерпрайзе - я не могу
найти бизнес-кейса для этого случая.

Это скорее комплексность искусствено превнесённая. Я-бы сказал ... издержки языка.
Тоесть ООП С++ ного вида слишком сильно концентрируется на синтетических задачах
которые само порождает.

Здесь я вспоминаю слова классика о том что основной читатель программ - это все
таки человек и адресованна программа человеку. И лишь в некоторых случаях - транслятор.
12 май 20, 18:24    [22131446]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
mayton

Не знаю. ООП последних 30 лет ... особенно в части С++ слишком циклиться на технических
вопросах. Например как похитрее запрятать приватное поле что.... (!) получить к нему доступ
снова (!!) через какой-то гребаный указатель. Простите. Сколько лет я в энтерпрайзе - я не могу
найти бизнес-кейса для этого случая.

Это скорее комплексность искусствено превнесённая. Я-бы сказал ... издержки языка.
Тоесть ООП С++ ного вида слишком сильно концентрируется на синтетических задачах
которые само порождает.

Не очень понимаю о чём вы? Можно пример?

Я к тому, что если задачу не удалось разбить на маленькие модули в рамках ООП... Так сделать такое разбиение в рамках N взаимодействующих процессов -- будет ещё сложнее.
12 май 20, 18:33    [22131452]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
Мне недостаточно было бить на модули. Я хотел отвязаться от обратной связи. У меня один из модулей
был генератором событий. Событие типа "атака с сетевого адреса xxx.xxx.xxx.xxx". А другой модуль
просто читал стрим этих событий и визуализировал их.

Тоесть модуль визуализации не должен был иметь возможности видеть API модуля генерации.
12 май 20, 18:41    [22131456]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
mayton
Мне недостаточно было бить на модули. Я хотел отвязаться от обратной связи. У меня один из модулей
был генератором событий. Событие типа "атака с сетевого адреса xxx.xxx.xxx.xxx". А другой модуль
просто читал стрим этих событий и визуализировал их.

Тоесть модуль визуализации не должен был иметь возможности видеть API модуля генерации.

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

Т.е. раньше объекты сидели в одной клетке, а теперь разбежались по нескольким. Но ООП то тоже самое, только теперь нужно наладить коммуникацию между клетками.

А что у вас там были вопросы, что закрытый член прячут глубже-глубже, а на выходе указатель. Можно пример?
12 май 20, 18:56    [22131469]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
mayton
Она напоминает сеть в миниатюре. Тоесть каждый объект - суть хост
в концепции IP-protocol. И вся сеть не страдает или не болеет от падения или от отказа
в обслуживании одного объекта-хоста. Она - продолжает работать. Такая степень ослабления
взаимодействия позволяет писать и отлаживать не программный комплекс а отдельные
микро-объекты которые существуют вполне себе сами. И могут быть под отладчиком.
Или под профайлером независимо от перформанса всей системы.
О-хо-хо-нюшки ...
Опять смешались в кучу кони, люди.
Началось всё тавтологией: I(nernet)P(rotocol)-protocol.
Продолжилось фактической ошибкой: прикладные протоколы IP-стека, в основном, моделируют взаимодействие точка-точка. И если вам требуется обеспечить кластеризацию и вот это всё из безотказности, то вы будете городить репликцию сеансов и прочие распределённые траназкции в своём приложении. Или вообще без поддержки IP или с минимальной опорой на IGMP/мультикаст.
Ну и маршрутиризация тоже меняется - сегодня уже вполне реально таскать просто Ethernet-пакеты, на которые навешаны (стекированные) метки (MPLS) и IP-маршрутиризация будет сугубо вспомогательной.
Несколько лет назад я пилил свой географический анализатор сетевых атак. Основная идея была в том чтобы визульна на географической карте или на квадрате IP-v4 адресов представить угрозу как некий прямоугольник.
А это - вообще пять.
Много вам поможет файервол на оконечном устройстве, если ваш канал будет под зафлужен под завязку?
Откуда вообще появилась идея, что визуализация "сетевой атаки" кому-то поможет???
Далее админ безопасности в режиме диалога или команд конфигурирует iptables в соотвествии с обобщенными свойствами адресов.
Дэна Брауна перечитали?
К чему это я все. Мне не помогало ООП.
"Остап старался, но отсутствие способностей сказывалось" (ц)
То, что вы классный программист с хорошим опытом, не делает вас универсалом, решающим любую техническую проблему, которую можно решить программными средствами. Вашей квалификации за пределами вашей же эпсилон-окрестности может быть сугубо недостаточно.
Вы много проработали в телекомах, с разными инструментами, чтобы понять их недостатки и предложить (лучшую) альтернативу?
Нет? Вы просто художник и вы так видите?
Мораль "Суди, дружок, не выше сапога" - помните? Ну так не уподобляйтесь тому сапожнику.
12 май 20, 19:49    [22131506]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
Скорее всего да. Люди делятся на художников и не-художников.
12 май 20, 20:01    [22131514]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
mayton
Скорее всего да. Люди делятся на художников и не-художников.

Но, согласитесь, красивая цитата:
Basil A. Sidorov
mayton
К чему это я все. Мне не помогало ООП.
"Остап старался, но отсутствие способностей сказывалось" (ц)

12-ть стульев и т.д. Ну, да...

Мне кажется Вам в Вашем изначальном приложении нужно пересмотреть свои подходы.
12 май 20, 20:41    [22131547]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
Ладно. Извините что я вторгся в ваш топик.
12 май 20, 20:53    [22131555]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 197
mayton
Несколько лет назад я пилил свой географический анализатор сетевых атак. Основная
идея была в том чтобы визульна на географической карте или на квадрате IP-v4 адресов
представить угрозу как некий прямоугольник. Далее админ безопасности в режиме диалога
или команд конфигурирует iptables в соотвествии с обобщенными свойствами адресов.

странный подход к противодействию сетевым атакам
география и iptables не скрещиваются
вырубать весь регион, откуда атака пришла? тоже такое себе противодействие...
13 май 20, 01:18    [22131718]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
White Owl
Member

Откуда:
Сообщений: 12501
petrav
Я согласен, но kolobok0 считает, что объект Автомобиль не может явно воздействовать на объект Человек. Поэтому взаимодействие классов тут только одностороннее: Человек --> Автомобиль + Человек как наблюдатель за Автомобилем.
Правильно считает - не может автомобиль воздействовать на человека. В связке автомобиль-человек оба объекта могут только посылать сообщения друг-другу и надеяться что они будут поняты и выполнены правильно.

petrav
Я считаю что в ООП-модели вполне корректно рассматривать воздействие автомобиля на человека. Но kolobok0 не согласен, потому что автомобиль не может разобрать человека на запчасти.
Вообще-то может, не должен, но физически может. В авариях чего только не случается...
Но это уже случай "исключения" и смерти объекта "автомобиль" - которая опосредовнно влияет на объект "человек", с разным результатом. Помрет человек, выживет или вылетит через лобовое стекло - это решает не автомобиль а более общая "среда" (пристегнут или нет, какая скорость была в момент, с чем столкнулись и тп). Но сам объект автомобиль на это уже не влияет никак.

Но все равно, в паре автомобиль-человек (а точнее "водитель public человек") все общение между классами идет на уровне сигналов и очередей.
13 май 20, 03:05    [22131729]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
White Owl
Member

Откуда:
Сообщений: 12501
mayton
К чему это я все. Мне не помогало ООП. Оно играло важную роль. Но его было недостаточно
чтобы разбить этот монолит на еще более тонкие части (модули или микросервисы да похер
как называть. Неважно). Важно что я смогу собрать своё внимание только на небольшой
части функционала.
На самом деле, это больше вопрос вкуса и вдохновения.
Любую задачу можно решить на любой парадигме, разница только в сложности решения. Ну и привычек пишущего.
Не все задачи удобны для ОО. Собственно говоря, единственное что на мой взгляд чрезвычайно удобно писать в ООП- это UI. Все остальное - м-э-э-э.
13 май 20, 03:14    [22131730]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 197
а как же RAII
и любые объекты, где выполняется какая-то автоматическая работа при создании/уничтожении
и объекты, которые делают какую-то одинаковую работу
поле довольно большое для ОО-деятельности...

Сообщение было отредактировано: 13 май 20, 12:37
13 май 20, 12:33    [22131946]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
Алексей Роза
mayton
Несколько лет назад я пилил свой географический анализатор сетевых атак. Основная
идея была в том чтобы визульна на географической карте или на квадрате IP-v4 адресов
представить угрозу как некий прямоугольник. Далее админ безопасности в режиме диалога
или команд конфигурирует iptables в соотвествии с обобщенными свойствами адресов.

странный подход к противодействию сетевым атакам
география и iptables не скрещиваются
вырубать весь регион, откуда атака пришла? тоже такое себе противодействие...

Когда в вопросе участвует страна и политика - тогда имеет смысл рассмотреть и такую
стратегию. Более того. Убежден что государства имеют у себя такой "рубильник".
13 май 20, 12:43    [22131958]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
White Owl
mayton
К чему это я все. Мне не помогало ООП. Оно играло важную роль. Но его было недостаточно
чтобы разбить этот монолит на еще более тонкие части (модули или микросервисы да похер
как называть. Неважно). Важно что я смогу собрать своё внимание только на небольшой
части функционала.
На самом деле, это больше вопрос вкуса и вдохновения.
Любую задачу можно решить на любой парадигме, разница только в сложности решения. Ну и привычек пишущего.
Не все задачи удобны для ОО. Собственно говоря, единственное что на мой взгляд чрезвычайно удобно писать в ООП- это UI. Все остальное - м-э-э-э.

Обычно бизнесовый объект может иметь от 1 до 1000 полей. И работать с ними в среде разработки
удобнее делая typewriting with autocompetition. Тоесть вы как-бы в контексте этого объекта. Это
пожалуй неоспоримое преимущество объекта. И еще делая скидку на то что у него есть скрытые
поля и прочее.

И еще до кучи. Была библиотека. Кажется Dozer. Ее весь смысл сводился к конфигурациям конвертеров
объектов. Тоесть к примеру вам надо интегрировать какой-то Soap-сервис от одного бизнеса с Rest-сервисом
другого. По сути - переливать сущности из одного места в другое. Стабы сделаны. Интерфейсы готовы
и осталось на 80% рутины - сделать просто маппинги. И поскипть или каким-то магическим образом
проскочить эту часть работы - невозможно. Можно конечно думать об отказе от ООП или о решении
задачи на другом уровне. Но маппинги чьорт из подери никуда не денутся. Какой-то кодер должен
сесть. Взять спецификации и это сделать.
13 май 20, 12:51    [22131971]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
mayton
Когда в вопросе участвует страна и политика - тогда имеет смысл рассмотреть и такую стратегию.
Более того. Убежден что государства имеют у себя такой "рубильник".
Это как?
Подрыв пиропатронов на тирванских магистралях???
Или обстрел коммуникаций гаубицами крупного калибра???
13 май 20, 13:33    [22132020]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
Basil A. Sidorov
mayton
Когда в вопросе участвует страна и политика - тогда имеет смысл рассмотреть и такую стратегию.
Более того. Убежден что государства имеют у себя такой "рубильник".
Это как?
Подрыв пиропатронов на тирванских магистралях???
Или обстрел коммуникаций гаубицами крупного калибра???

(пожимая плечами)

Да какая разница. Ухудшилась политическая обстановка с Гондурасом.
Гондурас DDOS-ить гос-сайты вашей страны.

P.S. Разумеется я понятия не имею как устроен магистральный файрвол. Я даже не
знаю как он работает и на каких протоколах. Я просто размышлял об идее.
И если эта идея выльется не в такую амбициозную задачу как бан государства
а просто в админ тул - и то хорошо.

Я даже думаю что этот софт есть и написан. Но когда-ж это нас останавливало....
13 май 20, 14:37    [22132108]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
mayton
P.S. Разумеется я понятия не имею как устроен магистральный файрвол.
Никак он не устроен.
Есть куча автономных систем со своими линками до других автономных систем, есть Tier I провайдеры, которые "держат" магистральные каналы. Это, конечно, крайне профански, но ваши представления - ещё хуже.
И, да, есть Китай, правительство которого реализовало, таки, "великий китайский файервол". Но у Китая, пока, исключительная ситуация.
13 май 20, 15:30    [22132188]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
White Owl
petrav
Я согласен, но kolobok0 считает, что объект Автомобиль не может явно воздействовать на объект Человек. Поэтому взаимодействие классов тут только одностороннее: Человек --> Автомобиль + Человек как наблюдатель за Автомобилем.
Правильно считает - не может автомобиль воздействовать на человека. В связке автомобиль-человек оба объекта могут только посылать сообщения друг-другу и надеяться что они будут поняты и выполнены правильно.

Что ж тут правильного? Колобоко считает, что взаимодействие авто-человек не симметрично: человек может воздействовать, а машина только лампочки зажигать. Вы и я считаем, что взаимодействие симметрично.

Но вы делаете замечание: не воздействие, а только отправка сообщений в надежде... Ну хорошо. Хотя софистикой отдаёт.

White Owl
petrav
Я считаю что в ООП-модели вполне корректно рассматривать воздействие автомобиля на человека. Но kolobok0 не согласен, потому что автомобиль не может разобрать человека на запчасти.
Вообще-то может, не должен, но физически может. В авариях чего только не случается...

А человек может разобрать машину. А автомобиль может убить человека. Т.е. взаимное явное воздействие всё же есть?

White Owl
Но это уже случай "исключения" и смерти объекта "автомобиль" - которая опосредовнно влияет на объект "человек", с разным результатом. Помрет человек, выживет или вылетит через лобовое стекло - это решает не автомобиль а более общая "среда" (пристегнут или нет, какая скорость была в момент, с чем столкнулись и тп). Но сам объект автомобиль на это уже не влияет никак.

Почему автомобиль не влияет? Влияет, хоть и не всегда успешно. Автомобиль может:

- Отказаться ехать пока водитель и пассажиры не пристёгнуты.
- Самостоятельно начать тормозить перед препятствием.
- Выпустить подушки безопасности.
- Не допустить перевод машины в занос.

White Owl
Но все равно, в паре автомобиль-человек (а точнее "водитель public человек") все общение между классами идет на уровне сигналов и очередей.

Хорошо. Заменим воздействие на посылку сигнала/сообщения. Так даже лучше будет.

Итого. Взаимодействие человека и авто симметрично (одинаковый механизм), почти всегда неявно, осуществляется отправкой сигналов-сообщений асинхронно и без гарантированного результата. Не учитывая аварий и разборки автомобиля.
13 май 20, 16:32    [22132232]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
petrav

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

Вспомнил мультфильм Левша по Лескову.
Там есть забавный фрагмент когда козак Платов садиться в сани
и хлещет нагайкой кучера а кучер в свою очередь хлещет тройку.

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

А сам козак Платов управляет?
13 май 20, 17:04    [22132252]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
mayton

Я даже думаю что этот софт есть и написан. Но когда-ж это нас останавливало....

А вы хотите на этом денег заработать?
13 май 20, 17:06    [22132255]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
petrav
mayton

Я даже думаю что этот софт есть и написан. Но когда-ж это нас останавливало....

А вы хотите на этом денег заработать?

Уже не хочу. Я на другом зарабатываю. А инфо-графика - это хобби.
13 май 20, 17:30    [22132277]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
mayton
petrav
пропущено...

А вы хотите на этом денег заработать?

Уже не хочу. Я на другом зарабатываю. А инфо-графика - это хобби.

Тогда может покажите скриншоты предыдущего прототипа?
13 май 20, 17:38    [22132282]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
Нет. Не покажу. Стыдно мне это еще показывать. Хочу довести до ума. Да и не в этом дело.
Я просто одну разработку привел как частный случай того что ООП - недостаточно.
13 май 20, 17:39    [22132284]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50033

petrav
Колобоко считает, что взаимодействие авто-человек не симметрично: человек может
оздействовать, а машина только лампочки зажигать. Вы и я считаем, что взаимодействие
симметрично.

"Зажигание лампочек" это установка значений свойств своего класса.
"Воздействие" это вызов методов другого класса.

В приведённой модели код класса "автомобиль" вызывает методы класса "человек"? Читает его
свойства? Если оба ответа "нет", то назачем вообще в этом классе эта ссылка?

Posted via ActualForum NNTP Server 1.5

13 май 20, 17:55    [22132302]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
Dimitry Sibiryakov

petrav
Колобоко считает, что взаимодействие авто-человек не симметрично: человек может
оздействовать, а машина только лампочки зажигать. Вы и я считаем, что взаимодействие
симметрично.

"Зажигание лампочек" это установка значений свойств своего класса.
"Воздействие" это вызов методов другого класса.

В приведённой модели код класса "автомобиль" вызывает методы класса "человек"? Читает его
свойства? Если оба ответа "нет", то назачем вообще в этом классе эта ссылка?

Читает. Смотрит что глаза открыты. Вызывает. Посылает сообщения об угоне. Я там ещё примеры приводил.

И тут дело вот в чём. ООП-модель и не должна максимально корректно описывать реальный мир. Она должна быть достаточно простой, но достаточной, что бы качественно реализовать ТЗ (с определённым заделом на будущее) и быть удобной в программировании. Идеальное соответствие реальному миру приведёт к оверинжинирингу и провалу проекта.

Сообщение было отредактировано: 13 май 20, 18:10
13 май 20, 18:09    [22132315]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
petrav

И тут дело вот в чём. ООП-модель и не должна максимально корректно описывать реальный мир. Она должна быть достаточно простой, но достаточной, что бы качественно реализовать ТЗ (с определённым заделом на будущее) и быть удобной в программировании. Идеальное соответствие реальному миру приведёт к оверинжинирингу и провалу проекта.

Я добавлю что есть огромное количество учебного материала по ООП который
писали ... не очень умные люди. Особенно в части наследования. Что там пишут?
"Собака наследует свойства волка..." Это-же полный звездец. Биологическая классификация
может насчитывать сотни узлов родственных связей между видами.

Мы что будем 100 раз наследовать волка?? Если даже речь пошла о биологии - то
надо было брать вообще не ООП а онтологии и семантик-сети.
13 май 20, 18:24    [22132326]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50033

petrav
ООП-модель и не должна максимально корректно описывать реальный мир.

А кому вообще в голову может такой бред прийти? Любая структура в программе способна
соответствовать в лучшем случае мат.модели на которой эта программа построена.

Posted via ActualForum NNTP Server 1.5

13 май 20, 18:28    [22132331]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
Dimitry Sibiryakov

petrav
ООП-модель и не должна максимально корректно описывать реальный мир.

А кому вообще в голову может такой бред прийти? Любая структура в программе способна
соответствовать в лучшем случае мат.модели на которой эта программа построена.

Так с этого и начались мои споры с Колобоко. Он напирал на то, что все его примеры из жизни. И считает, что автомобиль — это что-то пассивное (типа отвёртки). И поэтому автомобиль не должен содержать ссылки на человека. И постоянно повторял: т.е. это от жизни.
13 май 20, 18:38    [22132339]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
petrav
Dimitry Sibiryakov

пропущено...

А кому вообще в голову может такой бред прийти? Любая структура в программе способна
соответствовать в лучшем случае мат.модели на которой эта программа построена.

Так с этого и начались мои споры с Колобоко. Он напирал на то, что все его примеры из жизни. И считает, что автомобиль — это что-то пассивное (типа отвёртки). И поэтому автомобиль не должен содержать ссылки на человека. И постоянно повторял: т.е. это от жизни.

В 90х когда я учился в универе на курсе инженерной графики у меня даже спор возник с преподом.
Как правильно. Геометрическая фигура должна иметь метод draw(GraphicContext ctx) или
графический контекст должен иметь метод draw(Figure abstractFigure) для рисования ее.
Если честно я и сегодня не знаю ответа на вопрос. Скорее всего мало исходных
данных чтобы проектировать подобную систему. И надо понимать где прикладной код
и где системный.
13 май 20, 18:48    [22132347]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
petrav
Member

Откуда:
Сообщений: 2105
mayton
petrav
пропущено...

Так с этого и начались мои споры с Колобоко. Он напирал на то, что все его примеры из жизни. И считает, что автомобиль — это что-то пассивное (типа отвёртки). И поэтому автомобиль не должен содержать ссылки на человека. И постоянно повторял: т.е. это от жизни.

В 90х когда я учился в универе на курсе инженерной графики у меня даже спор возник с преподом.
Как правильно. Геометрическая фигура должна иметь метод draw(GraphicContext ctx) или
графический контекст должен иметь метод draw(Figure abstractFigure) для рисования ее.
Если честно я и сегодня не знаю ответа на вопрос. Скорее всего мало исходных
данных чтобы проектировать подобную систему. И надо понимать где прикладной код
и где системный.

Так тут "draw(Figure abstractFigure)" будет вынужден вызвать "draw(GraphicContext ctx)". :)
13 май 20, 18:55    [22132350]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
mayton
Member

Откуда: loopback
Сообщений: 46496
Это не применительно к Windows. Это может быть Borland C++ BGI e.t.c. Я уж не помню.

Тоесть API вашей графики это не окошковый API. Это просто грёбаный набор функций
которые что-то делают с SVGA-адаптером.

Вот такие вот стартовые условия. И дальше - фантазируйте. Наполняйте смыслом контекст и фигуру.
13 май 20, 18:58    [22132353]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50033

mayton
Если честно я и сегодня не знаю ответа на вопрос.

А это реально вопрос? Любой код должен располагаться в месте, где для его выполнения есть
максимальное количество необходимых данных. То есть количество "this->" (невидимых) в коде
должно многократно превосходить количество "что-то-ещё->".

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

Posted via ActualForum NNTP Server 1.5

13 май 20, 19:01    [22132358]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 1341
В клетке все настройки находятся в ДНК, а каждый белок выполняет свою уникальную функцию.
Это идеальная модель, когда все настройки в одном месте, а функции делают каждая свою одну задачу и всё.
Сама клетка представляет собой некий универсальный класс, который может стать чем угодно - клеткой кожи, клеткой глаза/мышцы/волоса, клеткой мозга.
По сути, это механизм наследования... "нулевая" клетка берёт настройки какой-то конкретной клетки и использует их.
Вот только в клетках все настройки привязаны к конкретной клетке. В каждой клетке своя ДНК. Ни с кем извне не связанная. И всё описание наследуемой клетки находится в этой ДНК.
Если рассматривать клетку, как объект (чем она и является), то у неё все варианты наследования лежат в ДНК, а она просто выбирает нужный.
ДНК при этом не связана ни с кем извне. Т.е. клетка как бы полностью автономна, как бы у каждой клетки свои собственные настройки...
НО! Если вдруг ДНК будет отличаться от других клеток, эту клетку уничтожат (разберут на запчасти).
Сверх-разум, в триллионы раз превосходящий наши самые смелые представления об ИИ, выбрал именно такую модель, как самую эффективную.

Сообщение было отредактировано: 14 май 20, 03:09
14 май 20, 03:04    [22132542]     Ответить | Цитировать Сообщить модератору
 Re: класс A входит в класс B, можно ли получить из класса А получить доступ к свойствам В  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
Идеализм - он такой идеализм ...
У эволюций нет ни разума ни цели: естественный отбор просто ставит нижнюю планку и выживают все, кто окажется хоть чуточку выше.

Сообщение было отредактировано: 14 май 20, 08:24
14 май 20, 08:24    [22132589]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / C++ Ответить