Legacy Claims Portal 🏠 Home 📘 Lernpfad 🧪 Workbook 📚 Handbuch 🧩 Patterns 🧾 Lizenzen 🔎 Archiv
Code verstehen

Design Patterns im Code

Kompakte Übersicht der verwendeten Entwurfsmuster mit direkt verlinkten, browserlesbaren HTML-Codeansichten der unveränderten Java-Dateien.

Architektur-/Integrationsmuster

Ports & Adapters / Hexagonal Architecture

Fachliche Use Cases hängen nur von Ports ab

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/port/ClaimRepository.java
Persistenzmuster

Repository

Der Use Case arbeitet gegen ein fachliches Repository-Interface statt direkt gegen JPA/JDBC/Stored Procedures.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/port/ClaimRepository.java
Strukturmuster

Adapter

Externe Systeme werden an fachliche Ports angepasst.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-infrastructure/src/main/java/com/seb4u/demo/claims/infrastructure/document/FileShareDocumentStorageAdapter.java
Integrations-/DDD-Muster

Anti-Corruption Layer

Legacy-Begriffe und Fremdsystemmodelle werden in interne fachliche Modelle übersetzt.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-infrastructure/src/main/java/com/seb4u/demo/claims/infrastructure/fraud/FraudRiskSoapAntiCorruptionAdapter.java
Use-Case-/Application-Muster

Command Object

Alle Eingaben eines Use Cases werden in einem expliziten Command gebündelt.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/command/ProcessClaimDecisionCommand.java
Application-Service-Muster

Command Handler / Use Case Interactor

Ein Handler orchestriert genau einen fachlichen Anwendungsfall.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/handler/ProcessClaimDecisionHandler.java
Fachlogikmuster

Policy / Domain Service

Regeln, die nicht sauber in eine einzelne Entity passen, werden als Policy modelliert.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-domain/src/main/java/com/seb4u/demo/claims/domain/ClaimTransitionPolicy.java
Fachlogikmuster

Specification

Eine fachliche Bedingung wird als wiederverwendbares Objekt formuliert.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-domain/src/main/java/com/seb4u/demo/claims/domain/policy/CoverageSpecification.java
Verhaltensmuster

State Transition / State-Machine light

Erlaubte Statuswechsel werden zentral modelliert und validiert.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-domain/src/main/java/com/seb4u/demo/claims/domain/ClaimStatus.java
Application-/Prozessmuster

Workflow Orchestrator

Mehrere Use-Case-Schritte und technische Folgeaktionen werden in einem Prozessfluss koordiniert.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-workflow/src/main/java/com/seb4u/demo/claims/workflow/ClaimDecisionWorkflowOrchestrator.java
Integrations-/Resilienz-Muster

Outbox Pattern

Ereignisse werden zuverlässig gespeichert, bevor sie asynchron veröffentlicht werden.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/port/OutboxPort.java
Resilienz-/Integrationsmuster

Idempotency Pattern

Wiederholte technische Aufrufe werden sicher gemacht, damit z. B. Zahlungen nicht doppelt vorbereitet werden.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/port/IdempotencyPort.java
Integrationsmuster

Mapper / Translator

Legacy- oder API-Formate werden in interne Begriffe übersetzt.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-soap-api/src/main/java/com/seb4u/demo/claims/soap/ClaimSoapCompatibilityMapper.java
API-/Transportmuster

DTO

Transportdaten werden von Domain-Objekten getrennt.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-rest-api/src/main/java/com/seb4u/demo/claims/rest/ClaimDecisionRequest.java
Verdrahtungsmuster

Registry / Composition Root light

Adapter-Zuordnungen werden nachvollziehbar dokumentiert bzw. zentral gesammelt.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-infrastructure/src/main/java/com/seb4u/demo/claims/infrastructure/config/AdapterRegistryV9.java
Testmuster

Test Data Builder

Testdaten werden lesbar und variierbar aufgebaut.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/test/java/com/seb4u/demo/claims/application/builder/ClaimTestDataBuilder.java
Testmuster

Object Mother

Häufig verwendete Standard-Testobjekte werden über sprechende Methoden bereitgestellt.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/test/java/com/seb4u/demo/claims/application/fixture/ClaimObjectMother.java
Testmuster

Fake / Spy Test Double

Ports werden im Test durch kontrollierbare Ersatzimplementierungen ersetzt.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/claim-application/src/test/java/com/seb4u/demo/claims/application/fake/InMemoryClaimRepository.java
Modernisierungsmuster

Strangler Fig Pattern

Legacy-Funktionen werden schrittweise durch neue Module ersetzt, ohne Big-Bang-Migration.

Hauptdatei
Codeansicht öffnen03_after_refactoring_modular/migration-tests/src/test/java/com/seb4u/demo/claims/migration/LegacyVsModularDecisionComparisonTest.java
Refactoring-Sicherheitsmuster

Golden Master / Characterization Test

Legacy-Verhalten wird vor dem Refactoring eingefroren und später mit der neuen Implementierung verglichen.

Hauptdatei
Codeansicht öffnen02_refactoring_steps/02_golden_master/GoldenMasterSnapshot.java

Pattern-Matrix

PatternKategorieNutzenHauptdatei
Ports & Adapters / Hexagonal ArchitectureArchitektur-/IntegrationsmusterFachliche Use Cases hängen nur von Ports abCodeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/port/ClaimRepository.java
RepositoryPersistenzmusterDer Use Case arbeitet gegen ein fachliches Repository-Interface statt direkt gegen JPA/JDBC/Stored Procedures.Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/port/ClaimRepository.java
AdapterStrukturmusterExterne Systeme werden an fachliche Ports angepasst.Codeansicht öffnen03_after_refactoring_modular/claim-infrastructure/src/main/java/com/seb4u/demo/claims/infrastructure/document/FileShareDocumentStorageAdapter.java
Anti-Corruption LayerIntegrations-/DDD-MusterLegacy-Begriffe und Fremdsystemmodelle werden in interne fachliche Modelle übersetzt.Codeansicht öffnen03_after_refactoring_modular/claim-infrastructure/src/main/java/com/seb4u/demo/claims/infrastructure/fraud/FraudRiskSoapAntiCorruptionAdapter.java
Command ObjectUse-Case-/Application-MusterAlle Eingaben eines Use Cases werden in einem expliziten Command gebündelt.Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/command/ProcessClaimDecisionCommand.java
Command Handler / Use Case InteractorApplication-Service-MusterEin Handler orchestriert genau einen fachlichen Anwendungsfall.Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/handler/ProcessClaimDecisionHandler.java
Policy / Domain ServiceFachlogikmusterRegeln, die nicht sauber in eine einzelne Entity passen, werden als Policy modelliert.Codeansicht öffnen03_after_refactoring_modular/claim-domain/src/main/java/com/seb4u/demo/claims/domain/ClaimTransitionPolicy.java
SpecificationFachlogikmusterEine fachliche Bedingung wird als wiederverwendbares Objekt formuliert.Codeansicht öffnen03_after_refactoring_modular/claim-domain/src/main/java/com/seb4u/demo/claims/domain/policy/CoverageSpecification.java
State Transition / State-Machine lightVerhaltensmusterErlaubte Statuswechsel werden zentral modelliert und validiert.Codeansicht öffnen03_after_refactoring_modular/claim-domain/src/main/java/com/seb4u/demo/claims/domain/ClaimStatus.java
Workflow OrchestratorApplication-/ProzessmusterMehrere Use-Case-Schritte und technische Folgeaktionen werden in einem Prozessfluss koordiniert.Codeansicht öffnen03_after_refactoring_modular/claim-workflow/src/main/java/com/seb4u/demo/claims/workflow/ClaimDecisionWorkflowOrchestrator.java
Outbox PatternIntegrations-/Resilienz-MusterEreignisse werden zuverlässig gespeichert, bevor sie asynchron veröffentlicht werden.Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/port/OutboxPort.java
Idempotency PatternResilienz-/IntegrationsmusterWiederholte technische Aufrufe werden sicher gemacht, damit z. B. Zahlungen nicht doppelt vorbereitet werden.Codeansicht öffnen03_after_refactoring_modular/claim-application/src/main/java/com/seb4u/demo/claims/application/port/IdempotencyPort.java
Mapper / TranslatorIntegrationsmusterLegacy- oder API-Formate werden in interne Begriffe übersetzt.Codeansicht öffnen03_after_refactoring_modular/claim-soap-api/src/main/java/com/seb4u/demo/claims/soap/ClaimSoapCompatibilityMapper.java
DTOAPI-/TransportmusterTransportdaten werden von Domain-Objekten getrennt.Codeansicht öffnen03_after_refactoring_modular/claim-rest-api/src/main/java/com/seb4u/demo/claims/rest/ClaimDecisionRequest.java
Registry / Composition Root lightVerdrahtungsmusterAdapter-Zuordnungen werden nachvollziehbar dokumentiert bzw. zentral gesammelt.Codeansicht öffnen03_after_refactoring_modular/claim-infrastructure/src/main/java/com/seb4u/demo/claims/infrastructure/config/AdapterRegistryV9.java
Test Data BuilderTestmusterTestdaten werden lesbar und variierbar aufgebaut.Codeansicht öffnen03_after_refactoring_modular/claim-application/src/test/java/com/seb4u/demo/claims/application/builder/ClaimTestDataBuilder.java
Object MotherTestmusterHäufig verwendete Standard-Testobjekte werden über sprechende Methoden bereitgestellt.Codeansicht öffnen03_after_refactoring_modular/claim-application/src/test/java/com/seb4u/demo/claims/application/fixture/ClaimObjectMother.java
Fake / Spy Test DoubleTestmusterPorts werden im Test durch kontrollierbare Ersatzimplementierungen ersetzt.Codeansicht öffnen03_after_refactoring_modular/claim-application/src/test/java/com/seb4u/demo/claims/application/fake/InMemoryClaimRepository.java
Strangler Fig PatternModernisierungsmusterLegacy-Funktionen werden schrittweise durch neue Module ersetzt, ohne Big-Bang-Migration.Codeansicht öffnen03_after_refactoring_modular/migration-tests/src/test/java/com/seb4u/demo/claims/migration/LegacyVsModularDecisionComparisonTest.java
Golden Master / Characterization TestRefactoring-SicherheitsmusterLegacy-Verhalten wird vor dem Refactoring eingefroren und später mit der neuen Implementierung verglichen.Codeansicht öffnen02_refactoring_steps/02_golden_master/GoldenMasterSnapshot.java