Back to Website
⬡
Omnideps Playground
Live Demo
Documentation
Control Panel
✕
Loading precomputed demo graph...
Preset Examples:
Java: Interfaces & Nested Classes (Default)
Rust: Traits, Structs & Generics
Python: ABC & Dependency Injection
Language:
Java (.java)
Rust (.rs)
Python (.py)
C (.c)
C++ (.cpp)
Source Snippet:
1233 chars
package demo; // 1. Relazioni di interfaccia e contratti interface PaymentMethod { boolean process(double amount); } // 2. Ereditarietà e classi astratte (IsA / Implements) abstract class BaseAccount implements PaymentMethod { protected String accountId; public BaseAccount(String id) { this.accountId = id; } } // 3. Classe concreta con classe annidata (NestedIn) class CreditCard extends BaseAccount { private SecurityToken token; public CreditCard(String id, String rawSecret) { super(id); this.token = new SecurityToken(rawSecret); } @Override public boolean process(double amount) { return token.validate(); } // Inner class statica static class SecurityToken { private String secret; public SecurityToken(String secret) { this.secret = secret; } public boolean validate() { return secret != null; } } } // 4. Servizio che usa e istanzia i componenti (Instantiates / Calls) class CheckoutService { public void executeCheckout(PaymentMethod method, double total) { CreditCard fallback = new CreditCard("CC-99", "secret-key"); method.process(total); fallback.process(total); } }
Analyze Code
?