Форум: "Прочее";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизВспоминаю ООП. С трудом :( Найти похожие ветки
← →
Курдль © (2006-09-11 12:54) [0]Надо же, как быстро теряешь квалификацию. Вещи, которые раньше казались элементарными, теперь вызывают сомнения. Вот, например. в таком случае.
Есть класс А и множество его экземпляров.
Методы этого класса крайне просты - всего лишь вызывают статические методы некоего статического класса В. Можно ли быть уверенным, что ни один их экземпляров класса А ошибочно не получит данные, предназначенные для другого экземпляра класса А? Естественно, класс В не использует статических полей, а лишь локальные переменные, используемые внутри его.
← →
Alkid © (2006-09-11 12:56) [1]Локальные переменные его статических методов? Тогда не получит.
← →
Cyrax © (2006-09-11 13:07) [2]Что значит "предназначенные для другого экземпляра класса А"?
И как вообще получает данные объект клааса А ?
← →
Курдль © (2006-09-11 13:16) [3]
> Alkid © (11.09.06 12:56) [1]
> Локальные переменные его статических методов? Тогда не получит.
Да, естественно, - только локальные переменные в зоне видимости методов.
Все "собственные" или "индивидуальные" данные хранятся в полях объектов А.
> Cyrax © (11.09.06 13:07) [2]
> Что значит "предназначенные для другого экземпляра класса
> А"?
> И как вообще получает данные объект клааса А ?
Напр.
public class A()
{
private Date date;
public void AskDate()
{
date = B.GetDate();
}
}
public static class B()
{
public static Date GetDate()
{
return System.CurrentDate();
}
}
А вот еще занимательная проблема.
Есть 3 класса - А, В, и С. Они не являются никакими "родственниками".
Есть экземпляр класса А, который четко "знает" о существовании экземпляра класса В и экземпляра класса С (сам их создал, либо имеет в полях ссылки на них, либо через другой объект - не важно).
Как заставить передать какие-либо данные от объекта В к объекту С?
(фрэнды, мьютексы и т.п. не предлагать).
← →
Плохиш © (2006-09-11 13:17) [4]
> Можно ли быть уверенным
В данной постановке вопроса, ответ "уверенным быть нельзя", кто ж его знает, что там кодер накодил. Только, какое это всё имеет отношение к ООП?
← →
Курдль © (2006-09-11 13:19) [5]
> Плохиш © (11.09.06 13:17) [4]
> Только, какое это всё имеет отношение к ООП?
Непосредственное! В процедурном программировании вопросов по объектам не возникает.
← →
Джо © (2006-09-11 13:20) [6]> Как заставить передать какие-либо данные от объекта В к
> объекту С?
Так зачем тогда сделано так, чтобы класс B не знал о классе C?
← →
Курдль © (2006-09-11 13:24) [7]
> Джо © (11.09.06 13:20) [6]
> Так зачем тогда сделано так, чтобы класс B не знал о классе C?
А я не могу передать эти "знания" т.к. экземпляры класса А находятся на одном домене, а В и С - на другом. Т.е. я не могу, например, в конструкторе класса С передать параметром ссылку на ранее созданный экземпляр класса В.
← →
Джо © (2006-09-11 13:29) [8]> [7] Курдль © (11.09.06 13:24)
Ну, пускай тогда через A обемениваются. Т.е, пусть A передает в B ссылку на свой метод обмена (реализация зависит от языка и личных предпочтений, например, делагатом).
И, если этим B и C нужно часто "обмениваться" данными — не сделать ли их одним классом?
← →
Kolan © (2006-09-11 13:34) [9]
> Надо же, как быстро теряешь квалификацию
Это вы после 1С?
← →
Курдль © (2006-09-11 17:14) [10]
> Джо © (11.09.06 13:29) [8]
> Ну, пускай тогда через A обемениваются.
Нельзя. Класс А находится за границами домена, в котором В и С.
Данные, которые нужно передавать от класса В к С между доменами не ходють (не сериализуются).
> И, если этим B и C нужно часто "обмениваться" данными —
> не сделать ли их одним классом?
Деление на разные классы предполагались из архитектурной целесообразности и с точки зрения экономии ресурсов.
Но в конце концов классы В и С пришлось объединить в один.
> Kolan © (11.09.06 13:34) [9]
> Это вы после 1С?
Нет! Бог миловал!
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.013 c