|
|
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
2 CTAC-KO не нужно запоминать никакую глубину для использования тебе нужен только сам, получившийся абстрактный класс во время разработки, пользуемся дизайнером и там все видно - он сам покажет кто от кого давай по-порядку, начнем с малого, и затем .... вот я давал почитать документ. почитал?? в понедельник посмотрим лягушечку(забугорную) и попробуем попить своего киселя, молока и водки (если захочешь) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2008, 09:22 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
Pomoemu, dlia izuchenija OOP luchshe vybrat' "chysto" OO jazyk - java ili C# (VB.net ne podojdet vsviazi s vozmojnostiju ispol'zovat' moduli). Nabrat'sia opyta i dal'she sproektirovat' etot opyt na VFP. VFP daet vozmojnost' delat' liubuju veshch' 4-mia sposobami i ochen' trudno ustojat' soblaznu "skatyvania" v procedurnoe programirovanie. Danylo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 06:32 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
документег про лохику я почитал. Идея, как я понял, несеццо такая - нуна хорошо расчесать свой код в плане общих вещей, чтоб их потом повыносить ф классы. а с нужными отличиями будуд классы на этих классах. даже уже в одном своем классе радостно ассайн-метод приделал :) Я вот типо свое комбо делал и захотел чтобы оно на дестроях сорсовый курсор прихлопывало, собсенно в его ините этот курсор запрашуеццо. дык вот. я приделал ассасина к RowSource, который метод в мою кастомную пропертю RowSourceTable записывал понятно че, еси там пусто было. ну а на дестроях Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2008, 16:56 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
Ой, блин... Ну и сказочники пошли... Простой пример. Все (ну, или почти все), слышали такой термин "нормализация". Несколько меньшее количество народа знает, что у нормализации есть несколько уровней (по научному - форм). Еще меньшее количество народа знает, что, как правило, при проектировании базы данных ограничиваются третьей нормальной формой, а, зачастую, сознательно идет на денормализацию (нарушение нормальной формы). А теперь простой вопрос: кто может привести официальное определение, хотя бы первой нормальной формы? Нет, в книжку заглядывать не надо. По интернету лазить тоже. И вообще, у Вас неожиданно погас свет. По памяти давайте! Ну? Никто? Как же так!? А как же вы все вообще проектируете базу данных? Да очень просто! Все эти глубоко научные термины не имеют к практическому программированию никакого отношения. Ну, почти... Это терминология теоретиков и для теоретиков. Не для практиков. Цель этих теоретических рассуждений - теоретические же рассуждения. В лучшем случае, они могут привести к новой идеологии. Но, в большинстве случаев, так рассуждениями и остаются. С практической точки зрения, нормализаци - это устранение дублирования вводимой и изменяемой информации. Информация должна физически хранится в одном месте. А из других мест на нее просто ссылаются. Вот и все. Так вот, что такое класс? Это заготовка. Болванка. Исходный материал. Если вернуться к примеру со строительством дома, то класс - это готовая панель. Разумеется, прежде чем начать строить дом необходимо определиться какие панели понадобяться. Глупо делать панель с балконом, если предполагается строить одноэтажный дом. Нет, разумеется, такую панель тоже можно будет использовать, но придется что-то делать с этим не нужным балконом. Логично сделать панель без балкона. А если перейдем к строительству многоэтажного дома, то из панели без балкона сделаем такую же панель, но с балконом. Это и есть "наследование". Какие сложности именно так (или примерно так) все и описать? Ведь не для теоретиков же все это пишется, а для практиков! Зачем, ну зачем все эти высоко-ученые термины через которые надо продираться с дикой головной болью, если на практике всем этим добром не пользуются? Даже тот, кто пытается что-то там объяснить! Приведенный текст по логике - просто проитворечит сам себе. Нарушает все те правила, которые сам же и устанавливает! Далеко не все способны объяснять. В смысле, не дать некую формальную отписку, типа - на, подавись! А объяснить так, чтобы человек понял. Ну, не способны и все. Тем не менее, потребность хоть в каких-то объяснениях есть. Вот и пишут... Кстати, поскольку теоретики, как правило, страшно далеки от народа (в смысле, от практики), то следует иметь в виду, что методы X_access() и X_assign() срабатывают только и исключительно при программном обращении или изменении свойства X. Это значит, что можно создать, например, для свойства PageFrame.ActivePage метод Assign(), чтобы отслеживать факт изменения активной страницы PageFrame. Только вот при изменении активной страницы при помощи мышки или клавиатуры этот метод срабатывать не будет! А сработает он только и исключительно при программном изменении. Т.е. если дадут команду вроде PageFrame.ActivePage = 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2008, 20:03 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
Владимир Проблема в том что объекты и таблицы это не одно и тоже. Есть даже такой термин Object Relational impedance mismatch . А насчет панелей вы правы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2008, 21:17 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
kdanyloВладимир Проблема в том что объекты и таблицы это не одно и тоже. Есть даже такой термин Object Relational impedance mismatch . А насчет панелей вы правы. Смысл примера с нормализацией был в том, чтобы показать, на достаточно простом и почти всем понятном примере что "высоконаучные" термины, так и остаются терминами, используемыми только очень узким кругом людей. На практике, большинством из этих терминов или не пользуются вообще или им придают совершенно другой смысл. Более "приземленный", что ли. "Будь проще и народ к тебе потянется". (с) Из последнего ответа CTAC-KO можно сделать вывод, что он практически ничего не понял из той статьи по логике, которую выложил прошелмимо . Я даже сомневаюсь, что он ее прочитал. Просмотрел - возможно, а вот прочитал - вряд ли. Слишком уж там все мудрено закручено. И, как ни странно, это совершенно нормальная реакция. Поскольку постоянно встает вопрос: а зачем? Ну, что дает знание всех этих терминов в смысле практического программирования? Какое вообще отношение этот текст имеет к рассматриваемым вопросам? Да никакого! Это так, игра ума. Нет, с точки зрения "чистой науки" - все правильно. Именно так и надо писать если речь идет о преподавании в ВУЗ-е, где-нибудь на младших, общеобразовательных курсах. Проблема только в том, что "чистой наукой" на данном форуме не занимаются. Здесь решают вполне конкретные задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 00:20 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Если вернуться к примеру со строительством дома, то класс - это готовая панель ..... При всем уважении к Вам – это не верно. Класс - это чертеж данной панели, а сама панель – это объект данного класса, т.е. – экземпляр, выполненный по этим чертежам. Класс (т.е. чертеж) может быть – один, а объектов – сколько угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 04:37 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
2 ВладимирМ Вы на верном пути: все правильно, но мы по-правильному не будем. автор Ну, что дает знание всех этих терминов в смысле практического программирования? Какое вообще отношение этот текст имеет к рассматриваемым вопросам? при исп-и ООП применяется абстракция, исп-ся операции над объемами. знание этих правил дает возможность правильно мыслить, избегать ошибок при практическом программировании. 2 CTAC-KO , попробуй поиграться с этим примером http://fox.wikis.com/wc.dll?Wiki~DecoratingWithThisAccess~VFP http://fox.wikis.com/wc.dll?Wiki~DecoratorPattern~SoftwareEng потом попьем своей водки и начнем снова говорить о классах, видах ... способах разработки .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 09:40 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
ВладимирМПростой пример. Все (ну, или почти все), слышали такой термин "нормализация". ... А теперь простой вопрос: кто может привести официальное определение, хотя бы первой нормальной формы? Нет, в книжку заглядывать не надо. По интернету лазить тоже. И вообще, у Вас неожиданно погас свет. По памяти давайте! Знание и понимание разные вещи. Можно знать наизусть эти определения, но кроме как цитировать ничего не уметь с ними делать. Но это не значит что они не нужны. Откуда-то ведь практик взял свой опыт? Практику интересно только понимание практического смысла этих формулировок: ВладимирМНормализаци - это устранение дублирования вводимой и изменяемой информации. Информация должна физически хранится в одном месте. А из других мест на нее просто ссылаются. Вот и все. У одного и того же явления с разных точек зрения разные смыслы. Например увеличение скорости с точки зрения физика - ускорение, математика - производная. и оба правы. С чего-то надо начинать изучать теорию реляционных БД. Если студенту выложить практический смысл нормализации, врядли оно понятней ему будет. Или вспомните начало изучения геометрии - учить аксиомы что треугольник всегда треугольный меня по началу просто убивало, но потом понял что вся остальная геометрия строится на этих примитивных аксиомах. В чем я полностью согласен, так в том что форум - не лучшее место для обсуждения теорий. В двух словах не опишешь, то за что теоретики диссертации защищали. Да и выжимки из этого через фильтр собственного опыта не особо интересны. Поэтому получается околонаучный треп, скатывающийся на перепалки типа "сам дурак" или "религиозные войны" где все средства хороши чтобы доказать что молишься "правильному" богу. ВладимирМДалеко не все способны объяснять. В смысле, не дать некую формальную отписку, типа - на, подавись! А объяснить так, чтобы человек понял. Ну, не способны и все. Тем не менее, потребность хоть в каких-то объяснениях есть. Вот и пишут... Можно так же сказать что и понимать все по разному способны, кому-то и отписки хватает, а у кого-то разжеванный по самые нехочу ответ вызывает одни вопросы и непонимание. Я это все к тому что не надо сходу критиковать за то что кто-то кого-то пытается обратить в свою религию, тут все взрослые, большинство с верхним образованием, думаю каждый сам разберется где мухи а где котлеты. Вдруг религия правильная окажется :) А вот если кто-то советует глупости в практических вопросах - тут надо вмешиваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 14:12 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Логично сделать панель без балкона. А если перейдем к строительству многоэтажного дома, то из панели без балкона сделаем такую же панель, но с балконом. Это и есть "наследование". Пушку тоже от танка будете наследовать? :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2008, 22:30 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
fixxer ВладимирМ Логично сделать панель без балкона. А если перейдем к строительству многоэтажного дома, то из панели без балкона сделаем такую же панель, но с балконом. Это и есть "наследование". Пушку тоже от танка будете наследовать? :-))) Eto ty poshutil, pravda? Pushku net, a tank s pushkoj mojno nasledovat' ot abstractnogo tanka bez pushki. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 01:49 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
> Логично сделать панель без балкона. А если перейдем к > строительству многоэтажного дома, то из панели без балкона сделаем такую > же панель, но с балконом. Это и есть "наследование". > > Пушку тоже от танка будете наследовать? :-))) Ну как тебе сказать. Раз уж коснулись военной темы, то считай, что те же МИГи можно считать наследованием с переопределением отдельных функций. Вертолет КА-52 - прямой наследник КА-50 (это вертушки) - там практически все от 50-го, за исключением "переопределенных методов и свойчств", как то, кабина на двоих пилотов и модификации вооружения. А если более приземленно - то возьмем к примеру ВАЗ. Начиная с копейки и заканчивая семеркой - прослеживается прямое наследование. Если скажешь - ну это же "НАШ" автопром. Тогда берем любого производителя авто. Любую модель, которая выпускается в кузовах седан и универсал. Как правило универсал - прямой наследник седана, с переопределенной задницей и все!!! Так что панель с балконом и без считаю корректным сравнением. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 07:36 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
Привет! Давайте так - Александр пытается мне показать как можно решить мой вопрос практически. Поэтому я не участвую в перепетиях хорошо это или плохо и по поводу теории. Смысл? Смотрел я по тем ссылам. И вот такой практический смысл в этом для себя нашел: у меня в данный момент немало "справочников". Под редактирование справочников я намалевал класс - форма с гридом и кнопками навигации. Скажем в данный момент для каждой бд справочников я в форм дизайнере рисую форму на основе этого класса, по ходу меняя лишь метод Init грида и метод DeleteAction формы. В итоге у меня в проекте куча таких форм лежит. Из меню я вызываю все через do form ... Теперь получается можно сделать так: в отдельном месте (не иначе как процедурный файл) задефайнить эти формы как классы на основе своего "справочного" класса, прописав только указанных 2 метода, а в меню тогда можно ставить create object() вместо do form. Это с одной стороны уменьшит размер выходного файла (практический смысл=0, т.к. разница будет несущественна), но с другой стороны это затруднит создание/редактирование этих форм, т.к. сам процесс будет невизуальными, т.е. не через формдизайнер, а пропиской в прг. С третьей стороны в формдизайнере я делаю то же самое - прг для 2х методов, правда я еще визуально ширину столбцов гриду могу задать, ну и доступ к нужной форме ПОКАЧТО более быстрый, но когда форм в проекте станет в разы больше - не факт. короче попробую я так сделать можно еще у goApp создать метод типа как Assign на пропертю MenuItem. Тогда в самом меню писать что-то типа goApp.MenuItem='bla-bla'. И в том методе уже выложить все деяния. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 07:37 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
Ну что же, скопипастчу сюда байку про симуляторы авторПовторное использование объектно-ориентированного кода (в программах) вызвало головную боль у Австралийских Вооруженных Сил. Т. к. симуляторы все активнее используются для тренировок боевых действий вертолетов, от программистов требуется постоянное повышение реализма используемых сценариев, включая детальные ландшафты местности и - в случае операции Феникс - стад кенгуру (т.к. испуганные животные могут легко выдать расположение воинских частей). Hачальник отдела симуляций наземных операций Defense Science and Technologу Organization приказал разработчикам, чтобы получить сертификат качества ИСО8, смоделировать перемещения кенгуру и их реакцию на вертолеты. Будучи грамотными программистами, те использовали готовые программные объекты, описывающие поведение пехоты в аналогичной ситуации, заменив изображения солдат на изображения животных и увеличив их скорость. Желая продемонстрировать свое мастерство перед посетителями - американскими пилотами - горячие австралийские парни "разбудили" кенгуру, пройдя над ними на малой высоте во время симуляции. Кенгуру разбежались, как и предполагалось, и американцы понимающе кивнули... А затем сильно удивились, т.к. кенгуру, перегруппировавшись, появились из-за холма и выпустили тучу стингеров по злополучным вертолетам. (Программисты забыли удалить соответствующий кусок кода из "пехотных" объектов). Урок? Объекты создаются с определенными атрибутами, и любой объект-потомок наследует этот атрибут. Смущенные программисты научились быть более внимательными, используя готовые объекты в своих программах, а американцы уехали с невольным чувством уважения к австралийской фауне. Hачальник симулятора отметил, что пилоты с этих пор боятся кенгуру как огня, для чего, собственно, и, нужен был этот кусок кода в симуляторе. ________ Не дадим распространиться заразе политкорректности! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 08:37 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
авторСмысл? чтобы понять большее, нужно начать с меньшего. мне нужен верный ход твоих мыслей, чтобы ты правильно начал выстраивать цепочку взаимосвязей, правильно анализировать предметы. это понятно? ия должен тебе буду объяснить почему так правильнее, а иначе - нет. делать я это буду, опираясь на методы и законы Логики. авторно с другой стороны это затруднит создание/редактирование этих форм, т.к. сам процесс будет невизуальными, т.е. не через формдизайнер, а пропиской в прг. ты ошибаешься, обрати внимание на мои примеры я всегда визуально разрабатываю классы разработка класса формы также происходит визуально в дизайнере. посмотри все мои примеры - я всегда рисую формы визуально в библиотеке виз.классов. ты торопишься, я покажу виз-е классы и расскажу о невизуальных. все визуальные классы мы всегда рисуем визуально в дизайнере. никаких прг мы не пишем. Все классы визуальные помещаем в библиотеки виз.классов. все классы, кроме session, column, header визуальные (я так считаю в отличии от некот.авторов) - это классы, котор.мы можем разрабатывать в дизайнере классов. Невизуальные классы описываем в процедуре. другое дело - созданные объекты - он уже визуальные и невизуальные. к прим. кнопка - визуальный объект, таймер - невизуальный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 09:34 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
2CTAC-KO обрати внимание на пример. посмотри как нарисована форма. много отличий от дизайнера форм?? (отличие - ты имеешь "рафинированный" класс) и затем ты работаешь только с классами (обрати внимание на закон Логики, утверждающий, что опр-и необходимо производить с предметами, имеющими одно основание) (имеется ряд преим-в, и я пока умолчу, мы пока учимся разрабатывать классы) http://www.sql.ru/forum/actualfile.aspx?id=5265404 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 09:40 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
авторно когда форм в проекте станет в разы больше - не факт. опять ты торопишься. Валить все в одну виз-ю библиотеку нельзя!! Будем делать много библиотек и объединять классы в зав-ти от общ.признаков, или др.каких-то хар-к (нам это никто не запретил, и будем использовать опять-же методы, которым нас учит Логика) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 09:44 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
не, стоп, тут уже ты меня неправильно понял. Я когда написал что форм у меня много, так это не в классах, а в проекте на закладке Docs. Класс для них один, там много однотипных форм на нем созданных. Я никуда не тороплюсь. Я просто пытаюсь осваивать материал на своей конкретной задаче. В той теме про лягушек - брали класс и его сабклассили, переписывая или добавляя к базовому чего надо. Вот и я хочу так попробовать, вместо создания на своем классе формы, во что практически входит редакция 1 метода формы и 1 метода грида на этой форме. т.е. описать сабкласс на классе и столкнулся с проблемой - медот формы переписать проблем нет, а вот как инит гриду этой формы переписать? типа Код: plaintext 1. 2. а как тогда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 10:56 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
2CTAC-KO ты пытаешься сразу перейти к практике не освоив азов. так грид то-же классом своим должен быть вот все и будем все классами тянуть нужно вначале с одиночными классами научиться работать, а затем уже собирать и комбинировать из различных типов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 11:01 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
посмотри, что пишут работодатели авторExpecting Member Откуда: Сообщений: 80 автор По части Delphi требуется приличное знание технологий ООП. Если этими знаниями не обладаете - не надо тратить наше и свое время. На дурку не прокатит. Чтобы не тратит ваше время на рассмотрение резюме, поясните,пожалуйста, что вы подразумеваете под приличным знанием технологий ООП? вчера, 17:09 [5273066] Цитировать Сообщить модератору Re: Разработчик T-SQL + Delphi32. Москва, крупный банк Agers Member Откуда: Сообщений: 14 Expecting Надо, чтобы человек умел работать с иерархиями классов, понимал, что такое полиморфизм, а не только кидать кнопки на форму. А то прочитают "Delphi для чайников" и говорят, что знают Delphi, а чем отличается overload от override не знают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 11:25 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
прошелмимотак грид то-же классом своим должен бытьтак он сибе отдельным классом. но форма-то класс и на ней уже этот классовый грид лежит. у тебя же класс-форма содержит на себе класс-грид? ну а как его, гридовый, инит переписать через классдефайн из этой формы? прошелмимовот все и будем все классами тянуть нужно вначале с одиночными классами научиться работать, а затем уже собирать и комбинировать из различных типовок. попробуем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 11:26 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
авторну а как его, гридовый, инит переписать через классдефайн из этой формы? посмотри есть наследник, вот у него есть внутри грид ну я взял и в инит грида написал что нужно этого тебе достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 11:30 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
прошелмимо авторну а как его, гридовый, инит переписать через классдефайн из этой формы? посмотри есть наследник, вот у него есть внутри грид ну я взял и в инит грида написал что нужно этого тебе достаточно?ну я понял, ты в родительский грид в инит напишешь чего надо, а в наследника оно попадет с этим инитом (наследует). т.е. сначала нужно инит грида переписать, затем пересоздать класс формы с этим гридом? а зачем такое выделение? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 11:39 |
|
||
|
Объектная модель программы
|
|||
|---|---|---|---|
|
#18+
Galyamov Rinat > Логично сделать панель без балкона. А если перейдем к > строительству многоэтажного дома, то из панели без балкона сделаем такую > же панель, но с балконом. Это и есть "наследование". > > Пушку тоже от танка будете наследовать? :-))) Ну как тебе сказать. Раз уж коснулись военной темы, то считай, что те же МИГи можно считать наследованием с переопределением отдельных функций. Вертолет КА-52 - прямой наследник КА-50 (это вертушки) - там практически все от 50-го, за исключением "переопределенных методов и свойчств", как то, кабина на двоих пилотов и модификации вооружения. А если более приземленно - то возьмем к примеру ВАЗ. Начиная с копейки и заканчивая семеркой - прослеживается прямое наследование. Если скажешь - ну это же "НАШ" автопром. Тогда берем любого производителя авто. Любую модель, которая выпускается в кузовах седан и универсал. Как правило универсал - прямой наследник седана, с переопределенной задницей и все!!! Так что панель с балконом и без считаю корректным сравнением. А я не считаю. Дело в том, что кроме наследования существует еще один способ расширения функциональности классов - аггрегация. Об этом часто забывают, а порой она много гибче наследования. Возьмем тот же пример с ВАЗом. Есть "копейка", а есть "одиннацатая" и "тринадцатая". Отличаются, по сути движком. Так вот, вместо того, чтобы наследовать от "копейки" и с мясом выкурочивать движок, проще создать сущность "двигатель" и аггрегировать ее в класс "копейка". И тогда заменой движка мы получаем "одиннацатую" и "тринадцатую" без головной боли. (класс "копейка" остается неизменным) Если идти дальше, то и другие части можно аггрегировать, грубо говоря, оставляя "шасси" и навешивая опции, это к слову о "седанах" и "универсалах". Простое "правило буравчика" на необходимость наследования это проверка на отношение "is-a". "универсал" is-a "седан"? да ни в коем случае. Возможно они is-a "кузов". Но это, возможно, не более чем единый интерфейс для аггрегации их в "шасси". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2008, 11:39 |
|
||
|
|

start [/forum/topic.php?fid=41&startmsg=35118678&tid=1588160]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 373ms |

| 0 / 0 |
