StrutturaliAdapterEspone un interfaccia base che può essere usata per rendere compatibili sistemi esterni con un determinato package. Es.: Package "Taxes" espone <<interface>> ITaxCalculatorAdapter FaçadeUsato nel sistema, per evitare accoppiamenti indesiderati. Fornisce un interfaccia a livello di package come un mega adapter di adapter. I client interni collaborano con la façade, non con i componenti interni del sottosistema. ProxyUsato per reindirizzare servizi remoti quando non disponibili. Fornisce un accesso alternativo all'oggetto reale. CreazionaliComportamentaliStrategyDefinendo una famiglia di algoritmi, posso renderli intercambiabili in base al client che voglio usare. Es.: Ho la famiglia di protocolli composta da: "NFC", "Bluetooth", "InfraRed". La mia classe DataTransfer può utilizzare in maniera intercambiabile uno dei 3 e chiamare il loro metodo comune "Transfer()", derivato dalla classe padre "Protocol". |