Здравствуйте, borisman3, Вы писали:
B>Да, к сожалению тут мы говорим об одной штуке(SOA) реализованной поверх другой штуки (ООП) и потому трудно понять что-ж это я имел в виду. Поясню.
B>1) ооп
B>IMyService s = new MyService();
B>2) SOA
B>IMyService s = serviceDiscovery.requireService(IMyService.class);
Ужась. Пункт 2 в ООП называется абстрактная фабрика, а точнее паттерн service locator. И, кстати, к SOA вообще никакого отношения не имеет.анет.
B>Первый вариант намертво закрепляет реализацию в компайл-тайме, второй — позволяет ее менять в рантайме.
Ага. Один из основных принципов ООП.
B>что в хорошей ООП программе надо делать по другому и т.д. и т.п. Заранее соглашаюсь, все так. И один из способов в ООП программе сделать все как надо — это SOA.
SOA совсем о другом. Основное отличие SOA от внутрипрограммного ООП состоит в отсутствии навигационного доступа. Т.е. в SOA нельзя из метода возвращать полноценные объекты, у которых удаленно можно позвать свои методы. Эта специфика связана с тем, что такое плохо работает в распределенных системах. А способ создания экземпляра класса по контракту никакого отношения к SOA не имеет.
... << RSDN@Home 1.2.0 alpha 5 rev. 66 on Windows 8 6.2.9200.0>>