Alexey_Donskoy писал(а):
Flavy писал(а):
Диаграмма классов это очень даже хорошо, но если как то прикрутить к ней шампур-метод это будет бомба.
Давайте и начнём с идей. Не с того, как должна выглядеть диаграмма классов, а с того, нужны ли вообще классы?
А если нужны, то нужны ли классы в таком виде, чтобы для их понимания надо было строить диаграмму классов?
О таком повороте не думал

Но давайте!
Плюсы:
1. Идею полезности объединения данных в структуры надо доказывать или примем как аксиому?
2. Наглядность представления объектов реального мира в виде иерархий наследования.
3. Гарантия целостности данных внутри объекта.
4. Унифицированный интерфейс для работы с разными но родственными объектами.
Хм... ну и так далее...
Минусы: (то что не рекламируется

)
1. Проблемы со связью между объектами.
2. Большой объем унаследованного "лишнего кода".
Что я ещё забыл?
Первое пытаются исправить костылями "design patterns" и криками о переносе "центра тяжести" на декларативность.
Второе лечат повышением мощности железа.
Сугубое IMHO: Классы нужны! Переход на ООП дал действительно ощутимый прирост именно
человеческой производительности труда Объектная модель лучше всего описывает реальный мир, в том числе и с точки зрения восприятия этой модели человеком. Человек склонен к абстракции, когда мы говорим "собака" мы не имеем в виду соседского Бобика. Но мы понимаем что речь идет о животном, с соответствующими атрибутами и поведением. Рассматривая дракон-диаграмму человек видит не набор квадратиков а процесс. Точно так же рассматривая диаграмму классов можно понять что собака млекопитающее, имеет один хвост и может им махать.
Илья Ермаков писал(а):
Flavy писал(а):
Например опишите на Драконе многопоточность, всё? Дракон в топку? Да он не для этого придуман. Нету такой диаграммы а задачи есть.
О! Параллелизм на Драконе можно описывать превосходно. Разумеется, не shared-memory-lock-based-concurrency, а асинхронный параллелизм на сообщениях... Оно же, если хорошо подумаете, Вам и ООП заменит с лихвой (с точки зрения "объект = процесс в своём наружном проявлении").
Илья, извините, наверное я действительно туго соображаю, примерчик можно в студию? Например асинхронные read/write обращения к файлу.
Valery Solovey писал(а):
А вот и нет. Это добавить всегда можно. Смотрите пример C++. Он разросся до таких огромных размеров, до которых, наверное, ещё никто не доростал.
Кстати о С++, Java медленно но уверенно сосет из него занимательные идеи

и я совсем не удивлюсь если в 7 или 8 версии появится можественное наследование

Понимаете где-то должен быть полигон для обкатки идей. Никто не заставляет пользоваться этими фичерами пишите как на С, скомпилируется. А фортран не чистили из-за обратной совместимости т.е. это не говорит о том что неудачными конструкциями продолжали пользоваться до самого конца, в С++ тоже goto есть а попробуйте на работе воспользоваться.