Хочется смены следущих парадигм
1. Задача (программа) должна описываться в терминах "что"
нам надо, а не "как" нам надо.
сейчас программы записываются в виде: если
мы находимся в пункте A, то надо сделать то-то и то-то.
Правильнее писать,
что пункт B отличается от пунка A тем-то и тем-то.
2. Переход к
наследованию(использованию) систем от наследования(использования)
объектов
Сейчас всегда неявно неявно подразумевается, что если мы
используем какой-то объект(компонент) и т.д.,
то мы всегда его
рассматриваем, как монолитную часть.
Допустим мы исользуем модуль
"автомашина", какой бы модуль хорошо написанным бы не был, даже если мы
его
сами писали, то сделать машину трехколесной или на колесно-гусеничном
ходу не получится.
3. Код стыка между модулями должен генерироваться
автоматически.
Допустим есть модуль, который использует вот такой
интерфейс:
interface ICar
{
Color Color {get;}
IКузов Кузов {get;}
}
interface IКузов
{
//ля-ля
}
|
и есть модуль, который реализует вот
такой интерфейс:
interface ICar
{
IКузов Кузов {get;}
}
interface IКузов
{
Color Color {get;}
//ля-ля
}
|
Сейчас подключение второго модуля
вместо первого не может быть произведено пользователем, а
требует
большого кол-ва ручного кода. Хотя всего навсего цвет машины чуть по другому
задавался.