Riutilizzo di buona parte di JADE.
Gestione Preferenze / Traduzioni / File / XML tramite Model.
Anche tutta la parte di interfaccia GUI (MyLabel ecc) presa da quello.
Pattern utili al caso:
- State : per lo stato Disegna / Sposta / Collega / Seleziona
- Composite & Visitor : per la stampa di tutti i blocchi e per salvataggio XML
[- Flyweight : utile per mantenere un unica istanza di blocchi uguali (con stesso ID)]
- Command : Per i comandi tra View / Model / Controller e UNDO (tenendo un log delle operazioni)
- AbstractFactory : per la generazione dei blocchi?
- Singleton : Per tutti i modelli
- Decorator : Per i vari Drawer del caso
- Facade : Preso da JADE
- Iterator : Per iterare tutti i blocchi di un certo tipo
- Observer : Per gestire gli eventi che accadono
- Strategy : Per scegliere tra freccie lineare, curve, spezzate