Design Patterns
Vollständige, aus den Codekommentaren erzeugte Pattern-Inventur mit Zweck, Einsatzort und Begründung.
82Pattern-Marker
68/68Teilmodule abgedeckt
| Modul | Variante | Pattern | Einsatzort | Begründung |
|---|---|---|---|---|
| AOP | Legacy | Proxy | projects/02-aop/legacy/src/main/java/at/aydin/lab/aop/legacy/LoggingProxy.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| AOP | Modern | Interceptor / Aspect | projects/02-aop/modern/src/main/java/at/aydin/lab/aop/modern/TrackingAspect.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Annotations und Reflection | Legacy | Registry | projects/14-annotations-reflection/legacy/src/main/java/at/aydin/lab/annotations/legacy/LegacyCommandRegistry.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Annotations und Reflection | Modern | Command + Metadata Registry | projects/14-annotations-reflection/modern/src/main/java/at/aydin/lab/annotations/modern/CommandRegistry.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Batch | Legacy | Mapper | projects/06-batch/legacy/src/main/java/at/aydin/lab/batch/legacy/CsvOrderParser.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Batch | Legacy | Template Method (manuell angedeutet) | projects/06-batch/legacy/src/main/java/at/aydin/lab/batch/legacy/LegacyBatchImporter.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Batch | Modern | Pipeline | projects/06-batch/modern/src/main/java/at/aydin/lab/batch/modern/BatchConfiguration.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Collections | Legacy | Collection Wrapper | projects/12-collections/legacy/src/main/java/at/aydin/lab/collections/legacy/LegacyInventory.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Collections | Modern | Snapshot | projects/12-collections/modern/src/main/java/at/aydin/lab/collections/modern/Inventory.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Concurrency | Legacy | Task Executor | projects/16-concurrency/legacy/src/main/java/at/aydin/lab/concurrency/legacy/LegacyTaskRunner.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Concurrency | Modern | Task Executor | projects/16-concurrency/modern/src/main/java/at/aydin/lab/concurrency/modern/VirtualThreadTaskRunner.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Dependency Injection | Legacy | Service Locator | projects/01-dependency-injection/legacy/src/main/java/at/aydin/lab/di/legacy/ServiceRegistry.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Dependency Injection | Modern | Constructor Injection | projects/01-dependency-injection/modern/src/main/java/at/aydin/lab/di/modern/GreetingRunner.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Dependency Injection | Modern | Port (Hexagonal Architecture) | projects/01-dependency-injection/modern/src/main/java/at/aydin/lab/di/modern/GreetingPort.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| EJB und Services | Legacy | Remote Facade | projects/27-ejb-services/legacy/src/main/java/at/aydin/lab/ejb/legacy/OrderRemote.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| EJB und Services | Legacy | Session Facade | projects/27-ejb-services/legacy/src/main/java/at/aydin/lab/ejb/legacy/OrderSessionBean.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| EJB und Services | Modern | Service Layer | projects/27-ejb-services/modern/src/main/java/at/aydin/lab/ejb/modern/OrderService.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Exception Handling und Logging | Legacy | Exception Shielding (Legacy-Antipattern-Variante) – fängt technische Fehler, verschluckt sie jedoch. | projects/18-exception-logging/legacy/src/main/java/at/aydin/lab/errors/legacy/LegacyCustomerLookup.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Exception Handling und Logging | Modern | Exception Translator | projects/18-exception-logging/modern/src/main/java/at/aydin/lab/errors/modern/CustomerLookupService.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Generics | Legacy | Generic Container (Legacy) – kapselt Werte, verliert durch Raw Types jedoch Typsicherheit. | projects/13-generics/legacy/src/main/java/at/aydin/lab/generics/legacy/RawBox.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Generics | Modern | Generic Container | projects/13-generics/modern/src/main/java/at/aydin/lab/generics/modern/TypedBox.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Generics | Modern | Generic Repository | projects/13-generics/modern/src/main/java/at/aydin/lab/generics/modern/Repository.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| HTTP-Client und Webtest | Legacy | Adapter – kapselt HttpURLConnection hinter einer kleinen Client-API. | projects/20-http-client-testing/legacy/src/main/java/at/aydin/lab/http/legacy/LegacyHttpClient.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| HTTP-Client und Webtest | Modern | Adapter | projects/20-http-client-testing/modern/src/main/java/at/aydin/lab/http/modern/JavaHttpTransport.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| HTTP-Client und Webtest | Modern | Port | projects/20-http-client-testing/modern/src/main/java/at/aydin/lab/http/modern/TextTransport.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Hibernate und JPA | Legacy | Unit of Work | projects/23-hibernate-jpa/legacy/src/main/java/at/aydin/lab/hibernate/legacy/HibernateBookStore.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Hibernate und JPA | Modern | Repository | projects/23-hibernate-jpa/modern/src/main/java/at/aydin/lab/hibernate/modern/BookRepository.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JMX und Monitoring | Legacy | Management Facade | projects/26-jmx-monitoring/legacy/src/main/java/at/aydin/lab/jmx/legacy/TaskCounter.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JMX und Monitoring | Modern | Observer | projects/26-jmx-monitoring/modern/src/main/java/at/aydin/lab/jmx/modern/TaskMetrics.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JNDI und Service-Auflösung | Legacy | Service Locator | projects/25-jndi-service-resolution/legacy/src/main/java/at/aydin/lab/jndi/legacy/JndiServiceLocator.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JNDI und Service-Auflösung | Legacy | Service Locator | projects/25-jndi-service-resolution/legacy/src/main/java/at/aydin/lab/jndi/legacy/LegacyGreetingUseCase.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JNDI und Service-Auflösung | Modern | Port | projects/25-jndi-service-resolution/modern/src/main/java/at/aydin/lab/jndi/modern/GreetingPort.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JPMS / Jigsaw | Legacy | Plugin Loader / Factory – erzeugt Plugins dynamisch über Reflection. | projects/28-jpms-jigsaw/legacy/src/main/java/at/aydin/lab/jpms/legacy/LegacyPluginLoader.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JPMS / Jigsaw | Modern | Service Provider Interface | projects/28-jpms-jigsaw/modern/src/main/java/at/aydin/lab/jpms/modern/api/GreetingProvider.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JUnit und Testdesign | Legacy | Stateless Service – hält die Berechnung zustandsfrei und isoliert testbar. | projects/19-junit-testing/legacy/src/main/java/at/aydin/lab/testing/legacy/VatCalculator.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| JUnit und Testdesign | Modern | Stateless Service – hält die Berechnung zustandsfrei und isoliert testbar. | projects/19-junit-testing/modern/src/main/java/at/aydin/lab/testing/modern/VatCalculator.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Java I/O und NIO | Legacy | Adapter – kapselt streambasiertes Kopieren hinter einer kleinen Datei-API. | projects/17-io-nio/legacy/src/main/java/at/aydin/lab/io/legacy/LegacyFileCopy.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Java I/O und NIO | Modern | Adapter | projects/17-io-nio/modern/src/main/java/at/aydin/lab/io/modern/PathFileService.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Java-Grundlagen | Legacy | JavaBean | projects/11-java-basics/legacy/src/main/java/at/aydin/lab/basics/legacy/LegacyCustomer.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Java-Grundlagen | Modern | Value Object | projects/11-java-basics/modern/src/main/java/at/aydin/lab/basics/modern/Customer.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Kryptografie | Legacy | Security Gateway (Legacy-Antipattern) – bündelt Kryptografie, verwendet absichtlich unsicheres ECB. | projects/32-crypto/legacy/src/main/java/at/aydin/lab/crypto/legacy/LegacyAesEcb.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Kryptografie | Modern | Security Gateway | projects/32-crypto/modern/src/main/java/at/aydin/lab/crypto/modern/AesGcmService.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Kryptografie | Modern | Value Object | projects/32-crypto/modern/src/main/java/at/aydin/lab/crypto/modern/EncryptedPayload.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Lambda und Streams | Legacy | Accumulator | projects/15-lambdas-streams/legacy/src/main/java/at/aydin/lab/streams/legacy/LegacyOrderAnalytics.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Lambda und Streams | Modern | Pipeline | projects/15-lambdas-streams/modern/src/main/java/at/aydin/lab/streams/modern/OrderAnalytics.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Maven Properties und Konfiguration | Legacy | Configuration Object – bündelt untypisierte Properties in einem Zugriffspunkt. | projects/21-maven-properties-config/legacy/src/main/java/at/aydin/lab/config/legacy/LegacyPropertiesConfig.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Maven Properties und Konfiguration | Modern | Configuration Object | projects/21-maven-properties-config/modern/src/main/java/at/aydin/lab/config/modern/ApplicationConfig.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Maven Properties und Konfiguration | Modern | Factory | projects/21-maven-properties-config/modern/src/main/java/at/aydin/lab/config/modern/ConfigFactory.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Messaging | Legacy | Messaging Gateway | projects/07-messaging/legacy/src/main/java/at/aydin/lab/messaging/legacy/LegacyJmsGateway.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Messaging | Modern | Message-Driven Consumer | projects/07-messaging/modern/src/main/java/at/aydin/lab/messaging/modern/OrderMessageListener.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Messaging | Modern | Messaging Gateway | projects/07-messaging/modern/src/main/java/at/aydin/lab/messaging/modern/OrderMessagePublisher.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| MongoDB | Legacy | Data Mapper | projects/24-mongodb/legacy/src/main/java/at/aydin/lab/mongodb/legacy/LegacyBookMapper.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| MongoDB | Legacy | Repository | projects/24-mongodb/legacy/src/main/java/at/aydin/lab/mongodb/legacy/LegacyBookRepository.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| MongoDB | Modern | Repository | projects/24-mongodb/modern/src/main/java/at/aydin/lab/mongodb/modern/BookRepository.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Patterns und Refactoring | Legacy | Conditional Strategy (Legacy-Antipattern) – wählt Preisalgorithmen über Bedingungen. | projects/34-patterns-refactoring/legacy/src/main/java/at/aydin/lab/patterns/legacy/LegacyPriceCalculator.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Patterns und Refactoring | Modern | Factory | projects/34-patterns-refactoring/modern/src/main/java/at/aydin/lab/patterns/modern/PricingStrategyFactory.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Patterns und Refactoring | Modern | Strategy | projects/34-patterns-refactoring/modern/src/main/java/at/aydin/lab/patterns/modern/PricingStrategy.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Persistenz | Legacy | DAO | projects/04-persistence/legacy/src/main/java/at/aydin/lab/persistence/legacy/CustomerDao.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Persistenz | Modern | Repository | projects/04-persistence/modern/src/main/java/at/aydin/lab/persistence/modern/CustomerRepository.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Persistenz | Modern | Service Layer | projects/04-persistence/modern/src/main/java/at/aydin/lab/persistence/modern/CustomerService.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| REST | Legacy | Repository | projects/03-rest/legacy/src/main/java/at/aydin/lab/rest/legacy/BookRepository.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| REST | Modern | Repository | projects/03-rest/modern/src/main/java/at/aydin/lab/rest/modern/BookRepository.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| REST | Modern | Service Layer | projects/03-rest/modern/src/main/java/at/aydin/lab/rest/modern/BookService.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| SMTP und Mail | Legacy | Factory – erzeugt vorkonfigurierte MimeMessage-Objekte. | projects/33-smtp-mail/legacy/src/main/java/at/aydin/lab/mail/legacy/LegacyMailFactory.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| SMTP und Mail | Modern | Command | projects/33-smtp-mail/modern/src/main/java/at/aydin/lab/mail/modern/MailCommand.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| SMTP und Mail | Modern | Gateway | projects/33-smtp-mail/modern/src/main/java/at/aydin/lab/mail/modern/JakartaMailGateway.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| SOAP | Legacy | Remote Facade | projects/10-soap/legacy/src/main/java/at/aydin/lab/soap/legacy/LegacyCalculatorEndpoint.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| SOAP | Modern | Remote Facade | projects/10-soap/modern/src/main/java/at/aydin/lab/soap/modern/ModernCalculatorEndpoint.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Service Registry und ServiceLoader | Legacy | Service Registry | projects/29-osgi-service-registry/legacy/src/main/java/at/aydin/lab/osgi/legacy/ServiceRegistry.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Service Registry und ServiceLoader | Modern | Service Provider Interface | projects/29-osgi-service-registry/modern/src/main/java/at/aydin/lab/osgi/modern/PaymentProvider.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Servlet und Web | Legacy | Front Controller (kleine Demonstration) | projects/09-servlet-web/legacy/src/main/java/at/aydin/lab/web/legacy/StatusServlet.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Servlet und Web | Modern | Front Controller + MVC Controller | projects/09-servlet-web/modern/src/main/java/at/aydin/lab/web/modern/StatusController.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Spring JDBC | Legacy | DAO | projects/22-spring-jdbc/legacy/src/main/java/at/aydin/lab/jdbc/legacy/CustomerDao.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Spring JDBC | Modern | Repository + Row Mapper | projects/22-spring-jdbc/modern/src/main/java/at/aydin/lab/jdbc/modern/CustomerRepository.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Transaktionen | Legacy | Transaction Script | projects/05-transactions/legacy/src/main/java/at/aydin/lab/transactions/legacy/LegacyTransferService.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| Transaktionen | Modern | Service Layer + declarative Transaction Boundary | projects/05-transactions/modern/src/main/java/at/aydin/lab/transactions/modern/TransferService.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| XML Parser | Legacy | Parser | projects/30-xml-parsers/legacy/src/main/java/at/aydin/lab/xmlparser/legacy/DomOrderReader.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| XML Parser | Modern | Iterator | projects/30-xml-parsers/modern/src/main/java/at/aydin/lab/xmlparser/modern/StaxOrderReader.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| XML und JAXB | Legacy | Mapper | projects/08-xml-jaxb/legacy/src/main/java/at/aydin/lab/xml/legacy/LegacyXmlMapper.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| XML und JAXB | Modern | Mapper | projects/08-xml-jaxb/modern/src/main/java/at/aydin/lab/xml/modern/ModernXmlMapper.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| XSLT | Legacy | Factory – erzeugt Transformer über die standardisierte TransformerFactory. | projects/31-xslt/legacy/src/main/java/at/aydin/lab/xslt/legacy/LegacyXsltTransformer.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |
| XSLT | Modern | Flyweight | projects/31-xslt/modern/src/main/java/at/aydin/lab/xslt/modern/SecureXsltTemplate.java | Dokumentiert die im Quelltext eingesetzte oder bewusst als Legacy-Kontrast gezeigte Struktur. |