Если вы хотите строить хрупкие, негибкие системы, последуйте совету Айвара Якобсона (Ivar Jacobson) – заложите в основу своей архитектуры сценарии использования и реализацию только одной функции (т. е. используйте объекты-«контроллеры»).
Напротив, расширяемые системы базируются на создании виртуальных машин – обобщенных решений, которые «программируются» данными, предоставляемыми более высокими уровнями, и реализуют сразу несколько функций приложения.
Известно много разных формулировок этого принципа. «Уровни» виртуальных машин восходят еще к Эдгару Дейкстре. «Системы, управляемые данными» предоставляют механизмы, которые базируются на программных инвариантах системы и позволяют данным определить конкретную функциональность для конкретного случая. Они прекрасно подходят для повторного использования – и притом весьма красивы.
No related posts.