API-Design. Kai Spichale
Чтение книги онлайн.

Читать онлайн книгу API-Design - Kai Spichale страница 21

Название: API-Design

Автор: Kai Spichale

Издательство: Bookwire

Жанр: Математика

Серия:

isbn: 9783960886037

isbn:

СКАЧАТЬ href="#fb3_img_img_5e82916e-528b-5141-963b-17b22d6348e5.png" alt="image"/>

      Abb. 4–1In der Onion Architecture bilden die Application Services die API-Schicht des Application Core.

       Component Boundary und Vertical Slices

      Nicht nur im API-Layer findet man Services, denn in einer komponentenbasierten Architektur kann die Applikation nicht nur in Schichten, sondern auch in vertikale Schnitte (vertical slices) eingeteilt werden, sodass kleinere Komponenten entstehen, die durch definierte Schnittstellen miteinander verbunden sind. In diesem Sinne unterstützt API-Design bei der Bildung einer modularen Codebasis.

image

      Abb. 4–2Die Applikation ist in Schichten und vertikale Schnitte eingeteilt. Die entstandenen Komponenten sind durch wohldefinierte Schnittstellen integriert.

       4.4Framework

      Frameworks bieten wiederverwendbare Funktionen und Erweiterungspunkte in Form von Interfaces und abstrakten Klassen, die von Benutzern des Frameworks zu erweitern sind. Auch objektorientierte Ansätze wie Callback- und Template-Methoden sind charakteristisch für Frameworks. Im Gegensatz zu einem Service nutzt ein Framework häufig eine Umkehrung der Steuerung (inversion of control), bei der der Entwickler eine konkrete Implementierung registriert, die dann durch das Framework genutzt und gesteuert wird.

      Frameworks können großen Einfluss auf die Architektur einer Applikation haben. Charakteristisch sind Callback-Methoden, Dependency Injection und Annotationen zur Steuerung des Lebenszyklus von Objekten. Beispiele sind die Beans des Spring Framework und die Enterprise JavaBeans (EJBs) des Java-EE-Standards. Auch das Framework JUnit prägt die Funktionsweise von Testfällen, denn Testfälle durchlaufen einen fest definierten Lebenszyklus. Mit speziellen Annotationen des Frameworks markierte Methoden können vor und nach der Testfallausführung aufgerufen werden.

       4.5Eine Frage der Priorität

      Die Frage lautet nicht, ob man API-Design anwendet, sondern wie viel.

      Die obige Liste, die sich wahrscheinlich fortsetzen ließe, zeigt, in welchen unterschiedlichen Ausprägungen objektorientierte APIs diskutiert werden können. APIs sind allgegenwärtig und nicht ausschließlich ein Integrationsthema. Der Aufwand, der mit dem Erreichen der API-Qualitätsmerkmale verbunden ist, ist jedoch nicht immer gerechtfertigt. API-Design ist daher eine Frage der Priorität. Typischerweise investiert man mehr in das API-Design für Framework- und Komponentengrenzen als für eine nur für wenige Entwickler sichtbare interne Implementierung. Die Priorität sollte von der Sichtbarkeit der API und der beabsichtigten Arbeitsteilung abhängig gemacht werden.

       4.6Zusammenfassung

       APIs sind allgegenwärtig, weil selbst einzelne Objekte eine implizite API besitzen.

       Das Design von APIs ist aufwendig und wird deswegen typischerweise nur intensiv an Komponenten- bzw. Teamgrenzen eingesetzt.

       APIs unterstützen das Geheimnisprinzip, Datenkapselung und die Trennung von Zuständigkeiten.

       APIs helfen, eine modulare Codebasis zu bilden.

      Das folgende Kapitel geht auf eine Vielzahl unterschiedlicher Aspekte und Empfehlungen zum praktischen Design von Java-APIs ein.

      Конец ознакомительного фрагмента.

      Текст предоставлен ООО «ЛитРес».

      Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

      Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QOAaHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENl aGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4 OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzE0NSA3OS4xNjM0OTksIDIwMTgvMDgvMTMtMTY6 NDA6MjIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5 OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHht bG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0i aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1w PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9 ImFkb2JlOmRvY2lkOmluZGQ6YjMyZTcwZWQtZTc4ZC0xMWQ4LThhYTYtYjJmZTcyYzY2ZDQ5IiB4 bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZBNTNEMTBENUI2RjExRTk5MzEwOTFBRDlBNUU1NDUz IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjZBNTNEMTBDNUI2RjExRTk5MzEwOTFBRDlBNUU1 NDUzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzQgTWFjaW50b3NoIj4gPHht cE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6MjFjNGNkMWUtYWUxMy05MTQx LTg2MzAtZTA1MzBiYjYxZjg0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuaWQ6Yjk4NThlZmEtZDQ5 NS00YzE0LTgwZmYtZTQ5MGZhYWNhY2JjIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+ IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMD AwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD AwMDAwMDAwMDAwMD/8AAEQgLuAgOAwERA
СКАЧАТЬ