Ovido
Idioma
  • Inglés
  • Español
  • Francés
  • Portuguesa
  • Alemán
  • Italiana
  • Holandés
  • Sueco
Texto
  • Mayúsculas

Usuario

  • Iniciar sesión
  • Crear cuenta
  • Actualizar a Premium
Ovido
  • Inicio
  • Iniciar sesión
  • Crear cuenta

Pattern Creazionali

Qual è l'intento del Factory Method (conosciuto anche come)?

L'intento del Factory Method è definire un'interfaccia per creare un oggetto, delegando alle sottoclassi la decisione su quale classe istanziare. È conosciuto anche come "Costruttore Virtuale".

Motivazione per l'uso del Factory Method?

Il Factory Method è utile quando una classe (come Application) deve gestire oggetti (come Document) senza conoscere quale sottoclasse di oggetto utilizzare. Le sottoclassi ridefiniscono il metodo CreateDocument per restituire l'istanza corretta.

Quando si applica il Factory Method?

Il Factory Method è utile quando:

Una classe non sa quale classe di oggetti deve creare.

Le sottoclassi devono specificare gli oggetti da creare.

Si vuole centralizzare la conoscenza della sottoclasse delegata per creare un oggetto specifico.

Struttura e partecipanti del Factory Method?

Partecipanti:

Product: interfaccia degli oggetti creati dal metodo factory.

ConcreteProduct: implementa l'interfaccia Product.

Creator: dichiara il metodo factory che restituisce un Product.

ConcreteCreator: sovrascrive il metodo factory per restituire un'istanza di ConcreteProduct.

Conseguenze dell'uso del Factory Method?

Il Factory Method:

Elimina la necessità di legare classi specifiche per l'applicazione nel codice.

Permette di sottoclassare Creator per creare un particolare ConcreteProduct.

Fornisce "ganci" per le sottoclassi per estendere un oggetto.

Supporta il Principio Aperto/Chiuso.

Implementazione del Factory Method?

Il Creator può essere una classe astratta senza implementare il Factory Method.
Il Creator può essere concreto e offrire un'implementazione predefinita.

Si può usare un metodo factory parametrizzato per controllare il tipo di prodotto da creare.

Utilizzi noti del Factory Method?

Utilizzato comunemente in Abstract Factory e altri software, per creare oggetti dinamicamente senza legarsi a classi specifiche.

Quali sono i pattern correlati al Factory Method?

Pattern correlati:

Abstract Factory: utilizza Factory Method per creare famiglie di prodotti.

Template Method: per definire il flusso del metodo factory.

Prototype: come alternativa per creare nuovi oggetti.

Qual è l'intento dell'Abstract Factory (conosciuto anche come)?

L'intento dell'Abstract Factory è fornire un'interfaccia per creare famiglie di oggetti correlati o dipendenti senza specificare le loro classi concrete. È conosciuto anche come "Kit".

Motivazione per l'uso dell'Abstract Factory?

L'Abstract Factory è utile in un toolkit UI che supporta diversi standard di look-and-feel. Permette di creare widget compatibili con vari stili senza legare il codice client a un look-and-feel specifico.

Quando si applica l'Abstract Factory?

L'Abstract Factory è utile quando:

Il sistema deve essere indipendente dai dettagli di creazione dei prodotti.

È necessario configurare il sistema con famiglie di prodotti specifiche.

Una famiglia di prodotti correlati deve essere usata insieme.

Si vuole fornire interfacce di classi di prodotti senza esporne le implementazioni.

Qual è la struttura e chi sono i partecipanti nell'Abstract Factory?

Partecipanti:

AbstractFactory: dichiara i metodi per creare prodotti astratti.

ConcreteFactory: implementa la creazione dei prodotti concreti.

AbstractProduct: interfaccia per un tipo di prodotto.

ConcreteProduct: definisce un prodotto concreto e implementa AbstractProduct.

Client: utilizza solo le interfacce di AbstractFactory e AbstractProduct.

Collaborazioni nell'Abstract Factory?

Una singola istanza di ConcreteFactory è creata a runtime. La ConcreteFactory crea oggetti di prodotto con una specifica implementazione, e l'AbstractFactory delega la creazione dei prodotti alle sue sottoclassi ConcreteFactory.

Conseguenze dell'uso dell'Abstract Factory?

L'Abstract Factory:

Isola le classi concrete: il client usa solo interfacce astratte.

Facilita la sostituzione delle famiglie di prodotti modificando solo la factory concreta.

Promuove la coerenza, utilizzando oggetti della stessa famiglia.

Difficile estendere l'interfaccia della factory per nuovi tipi di prodotto.

Come si implementa l'Abstract Factory?

Implementazione:

Creare un'interfaccia AbstractFactory con metodi di creazione per ogni tipo di prodotto.

Implementare classi ConcreteFactory per ogni variante.

A runtime, usare la configurazione o l'ambiente per selezionare la factory appropriata.

Sostituire le chiamate dirette ai costruttori con chiamate alla factory.

Utilizzi noti dell'Abstract Factory?

L'Abstract Factory è utilizzato comunemente in applicazioni che richiedono la creazione di interfacce utente multipiattaforma o la gestione di famiglie di oggetti correlati.

Quali sono i pattern correlati all'Abstract Factory?

Pattern correlati:

Factory Method: spesso implementato all'interno dell'Abstract Factory.

Singleton: usato per assicurare una singola istanza della ConcreteFactory.

Prototype: per creare oggetti duplicando un'istanza esistente.

Qual è l'intento del Singleton?

L'intento del Singleton è garantire che una classe abbia una sola istanza e fornire un punto di accesso globale a questa istanza.

Motivazione per l'uso del Singleton?

Il Singleton è usato quando è necessario avere una singola istanza di una classe accessibile da un punto globale, evitando che altre istanze vengano create accidentalmente tramite una variabile globale.

Quando si applica il Singleton?

Utilizza il Singleton quando:

Deve esistere una sola istanza di una classe accessibile da un punto di accesso noto.

La singola istanza deve essere estendibile tramite sottoclassi, e i client devono poterne usare una senza modifiche.

Qual è la struttura e chi sono i partecipanti nel Singleton?

Partecipanti:

Singleton: definisce l'operazione Instance per accedere alla sua unica istanza, spesso come membro statico, ed è responsabile della creazione della propria istanza unica.

Collaborazioni nel Singleton?

I client accedono esclusivamente all'istanza Singleton tramite il metodo Instance, assicurando che vi sia un unico punto di accesso globale.

Conseguenze dell'uso del Singleton?

Il Singleton offre:

Accesso controllato e centralizzato all'unica istanza.

Riduzione dello spazio dei nomi, eliminando variabili globali.

La possibilità di sottoclassare e raffinare il Singleton per rappresentazioni diverse.

Possibilità di implementare un numero variabile di istanze, se necessario, benché sia complicato in linguaggi come C++.

Come si implementa il Singleton?

Implementazione:

Aggiungi un campo statico privato per l'istanza.

Dichiarare un metodo di creazione statico pubblico per restituire l'istanza.

Usa l'inizializzazione "pigra" nel metodo di creazione.

Rendi privato il costruttore.

Sostituisci le chiamate dirette al costruttore nel codice client con il metodo di creazione statico.

Utilizzi noti del Singleton?

Il Singleton è ampiamente usato in molte applicazioni che richiedono accesso centralizzato a un'unica risorsa o a un oggetto condiviso tra vari client.

Quali sono i pattern correlati al Singleton?

Pattern correlati:

Abstract Factory: può usare il Singleton per fornire un'unica istanza di una factory.

Builder: gestisce la creazione complessa di oggetti, a volte con Singleton.

Prototype: crea nuovi oggetti clonando un'istanza esistente, alternativa al Singleton.

intento builder

Intento: Separare la costruzione di un oggetto complesso dalla sua rappresentazione, in modo che lo stesso processo di costruzione possa creare rappresentazioni diverse.

Motivazione Builder

Motivazione:
Un lettore di formato RTF deve essere in grado di convertire in vari formati di testo, come ASCII o un widget di testo interattivo.

Dev’essere facile aggiungere nuove conversioni senza modificare il lettore.

In un oggetto complesso, la costruzione di componenti può richiedere un'inizializzazione laboriosa, e un costruttore enorme può rendere difficile la gestione delle combinazioni dei parametri. Il Builder permette di evitare una crescita esponenziale della gerarchia delle sottoclassi o di costruttori con troppi parametri.

Applicabilità Builder

Applicabilità: Usa il pattern Builder quando:
L'algoritmo per costruire un oggetto complesso dovrebbe essere indipendente dalle sue parti e da come vengono assemblate.

Il processo di costruzione deve consentire rappresentazioni diverse per l'oggetto costruito.

Struttura e Partecipanti Builder

Struttura e Partecipanti:
Builder (TextConverter): Interfaccia astratta per creare parti di un prodotto.

ConcreteBuilder (ASCIIConverter, …): Implementa l’interfaccia Builder, costruisce e assemblasse parti del prodotto, e fornisce un'interfaccia per recuperare il prodotto.

Director (RTFReader): Gestisce l'ordine delle fasi di costruzione.

Product (ASCIIText, TeXText, TextWidget): Oggetto complesso in costruzione che include le classi delle sue parti costitutive.

Collaborazioni Builder

Collaborazioni:
Il client crea l'oggetto Director e lo configura con l'oggetto Builder desiderato.

Il Director invoca il Builder per costruire il prodotto, passo dopo passo.

Il Builder gestisce la costruzione e recupera il prodotto.

Il client recupera il prodotto dal Builder.

Conseguenze Builder

Conseguenze:
Permette di variare la rappresentazione interna di un prodotto.

Nasconde la struttura e l'assemblaggio del prodotto dal codice client.

Isola il codice di costruzione dal codice aziendale.

Migliora la modularità e il riuso del codice.

Consente di costruire l'oggetto passo dopo passo, dando un controllo dettagliato sul processo di costruzione.

Implementazione Builder

Implementazione:
Creare una classe astratta Builder con operazioni per ciascuna parte da costruire.

Le ConcreteBuilder implementano i metodi di costruzione specifici per ogni parte del prodotto.

Implementare un metodo per recuperare il prodotto finito.

Creare un Director per incapsulare le sequenze di costruzione, se necessario.

Utilizzi noti Builder

Utilizzi Noti: Utilizzato in molte applicazioni che necessitano di costruire oggetti complessi, come nei sistemi di progettazione, nelle auto (construzione di auto e manuali) e nei lettori di formati complessi come RTF.

Pattern Correlati Builder

Pattern Correlati:
Abstract Factory: Permette di creare famiglie di oggetti correlati, spesso utilizzato insieme al Builder.

Composite: Può essere utilizzato in combinazione con Builder per strutturare prodotti complessi come strutture gerarchiche di oggetti.

Qual è l'intento del pattern Prototype?

Creare nuovi oggetti clonando un'istanza di un prototipo piuttosto che costruire un nuovo oggetto da zero, rendendo il processo di creazione flessibile e meno dipendente dalle classi concrete.

Perché usare il pattern Prototype?

Quando è difficile o inefficiente creare nuovi oggetti da zero, clonare prototipi predefiniti è una soluzione comoda.
Consente di evitare una complessa gerarchia di sottoclassi e permette di creare oggetti da una tavolozza predefinita (es. note musicali in un editor di spartiti).

Quando utilizzare il pattern Prototype?

Quando un sistema deve essere indipendente da come i suoi oggetti sono creati, composti e rappresentati.
Quando le classi da istanziare sono specificate a runtime e quando la gerarchia di classi potrebbe essere ampia.

Quando il sistema deve supportare un numero limitato di configurazioni di stato per gli oggetti.

Qual è la struttura del pattern Prototype e chi sono i partecipanti?

Prototype (Graphic): Interfaccia per clonare se stesso.
ConcretePrototype (Staff, WholeNote, HalfNote): Implementa l'operazione di clonazione.

Client (GraphicTool): Crea un nuovo oggetto chiedendo al prototipo di clonare se stesso.

Come collaborano i partecipanti nel pattern Prototype?

Il client chiede al prototipo di clonare se stesso, senza sapere quale classe concreta rappresenti l'oggetto, sfruttando l'interfaccia comune di clonazione.

Quali sono le conseguenze dell'uso del pattern Prototype?

Nasconde le classi concrete al client, permettendo flessibilità nell'uso degli oggetti.
Riduce la necessità di una gerarchia complessa di sottoclassi.

Permette di modificare e aggiungere prodotti a runtime.

Supporta una configurazione dinamica senza modificare il codice.

Quali sono i principali passi per implementare il pattern Prototype?

Creare un'interfaccia con il metodo di clonazione.
Definire un costruttore che copia i dati da un oggetto esistente.

Implementare il metodo clone() in ciascuna sottoclasse.

Creare, facoltativamente, un registro di prototipi per gestire istanze predefinite e facilitarne la clonazione.

Dove viene comunemente utilizzato il pattern Prototype?

È utilizzato in sistemi che devono creare oggetti complessi in modo efficiente e flessibile, senza accoppiare strettamente il codice alla classe concreta dell'oggetto.
È utile in applicazioni con configurazioni predefinite o a runtime, come nei giochi, nei sistemi di grafica, o in editor di testi e spartiti musicali.

Quali sono i pattern correlati al Prototype?

Abstract Factory: Può essere utilizzato in combinazione con Prototype per la creazione di oggetti con configurazioni variabili.
Composite: Può essere usato per strutturare oggetti complessi che vengono clonati come parte di una struttura gerarchica.

Decorator: Può arricchire un oggetto clonabile con funzionalità aggiuntive senza modificarne la struttura originale.

Quali sono i due modi principali per parametrizzare un sistema attraverso le classi di oggetti che crea?

Sottoclassare la classe che crea gli oggetti (Metodo Factory).
Parametrizzare un sistema utilizzando la composizione degli oggetti (Abstract Factory, Builder, Prototype).

Qual è uno svantaggio del Metodo Factory?

Il principale svantaggio del Metodo Factory è che può richiedere la creazione di nuove sottoclassi ogni volta che si vuole cambiare la classe del prodotto, il che può causare cambiamenti a cascata nel sistema.

Cos'è il modello basato sulla "composizione"?

Il modello basato sulla composizione implica la creazione di un nuovo "oggetto factory" il cui compito è creare oggetti prodotto. Questo approccio evita la necessità di creare sottoclassi per ogni variazione di prodotto.

Come si applica la composizione nel pattern Abstract Factory?

Nel pattern Abstract Factory, l'oggetto factory è responsabile della produzione di oggetti appartenenti a diverse classi, utilizzando un'unica interfaccia che maschera la variabilità dei prodotti.

Come funziona il pattern Builder in un sistema basato sulla composizione?

Nel pattern Builder, l'oggetto factory costruisce un prodotto complesso in modo incrementale utilizzando un protocollo complesso, suddividendo il processo di creazione in più fasi per una maggiore flessibilità.

Come si applica la composizione nel pattern Prototype?

Nel pattern Prototype, l'oggetto factory è il prototipo stesso, e il prodotto viene costruito clonando un oggetto prototipo, evitando la necessità di creazione manuale di ogni nuova istanza.

Quali sono i vantaggi del modello basato sulla composizione rispetto al Metodo Factory?

Permette di evitare la creazione di sottoclassi ogni volta che cambia un prodotto.
Fornisce un modo più flessibile per creare oggetti senza modificare il codice esistente.

Supporta una gestione più dinamica della creazione di oggetti complessi.

Cosa si intende per "effetto a cascata" nel Metodo Factory?

L'"effetto a cascata" si riferisce al problema che si verifica quando la modifica di una sottoclasse per cambiare il prodotto crea una serie di modifiche necessarie in altre parti del sistema, con possibili ripercussioni su molte altre classi.

Qual è la principale differenza tra il Metodo Factory e i pattern basati sulla composizione come Abstract Factory, Builder e Prototype?

Il Metodo Factory richiede la creazione di nuove sottoclassi per ogni variazione del prodotto, mentre i pattern basati sulla composizione utilizzano oggetti factory separati (o prototipi) per creare varianti di prodotto senza modificare direttamente le classi concrete.

Cuestionario
Design Patterns
Architettura
Contratti Operazioni
Modello di dominio
Diagrammi di sistema
Casi d'uso
だいひょうてきなしょくちゅうどくきんとそのしょうじょう
Prácticas de histología - copia
ingles vocabulario
2535 week 7- pharma
macbeth act 1 8/15
microbiology
Parcial 2
Sistema Reprodutor
plantes
5. Por la ciudad
yasmin
Etapa 2
PARTO (NACIMIENTO)
biologia1
woordjes 379-393
barocco
4. Comida de negocios
Terminologie (Suffixes)Termino
Trajet 2 voc
Exchange sunstances with their environment
Bio systeme cardiovascualaire
vocab 3
vocab 2
funções sintáticas
GS belangrijke personen
regras do femenino da língua francesa
i pesci
MEMBRANAS FETALES EN LOS GEMELOS
as aventuras de polianavenha ver se voces realmente conhece as aventuras de poliana...
sociologiesdefinitions
zodziai
função sintática
OGGETTI DEI NEGOZI.
orações subordinadas
negozi.
det stora engelska testet - kopia
l
responder preguntas de deja en paz a los muertos
oliviaengels deel 2
plani
vocabulario unit 1palabras
ITALIAN
partes del teatro
Italian
verbos irregulares
Probabilidad.
storia del arte
scienze
Onderdelen van het geraamte.Nederlands - Latijn.
Frutta
opsd
HUMAN PHYSIOLOGY AND BIOCHEMISTRY
Prácticas de histología
2535 week 7- Patho
LÍQUIDO AMNIÓTICO
drama termanology
VELLOCIDADES CORIÓNICAS
CAMBIOS DE LA PLACENTA AL FINAL DEL EMBARAZO
fonti normative
caratteri fondamentali del fenomeno giuridico
Examen Ordinario
Religion prov 2
biologia celular
geografiaa
sistema solarsistema solar
Les formes de l'Etat
l'Etat et le droit constit
números del 1 al 31
Forensic3
tech
espressioni da utilizzare al ristornateristorante
Magnetism
tedescocibi
higes
Vocabulary
Material de laboratorio
Object Oriented Programming
Ingles
Java
viruses
photosynthesis
Matspjälkning boken
Lesson 4: Database Analysis and Design
todo
General Principles
Lesson 3: Database Development Process
Portuguêsportuguês verbos
historychapter 1,2,3
Joana
ESTRUCTURA DE LA PLACENTA
Kickboxing
Traumatologia
accidentes de transito
3. Familia y compañía
VIOLACION
Parcial 2
FRACTURE
éducation physique - copieriennnn
Etapa 1
PSIpsi
unidades 9-10
esame di paciologia dei processi cognitivi ed emotivi
Mapeh (Music) 2nd testStudy
Grundpropleme der Sozialen Arbeit
2. Metas profesionales
skeletal system part 1
Lesson 2: Database Environment
verbos regulares del alemán
colores
Paises y capitales - copia
Paises y capitales
Lesson 1: Introduction to Information Management
Rhetoric cards
direito economico
HK åk 8 prov
glosor
The Teacher and School Curriculum50 items test
Verbos
Histologia
Sprecheafufgaben swei
Amnios y cordón umbilical
History test ww2 grade 10
português sermão teste
BIOLOGÍA
MEMBRANAS FETALES Y PLACENTA
svt - copie
svtflashcards svt
vocabulary: social issuesejercicio donde he de rellenar huecos en blanco de frases de vocabulario sobre "social issues": corruption, curfew, demonstration, funding, gang, gather, go on strike, healthcare, homlessness, inequal...
diritto costituzionale
Guía Parcial 2
Peskeletal system
les tissus musculaire osseux etc
expressões algébrica de números racionaispara início de 7° ano
GrammaticaGrammatica
Vocabulary of school
spanishspanish
bio 30 digestion test
physics heat test
kap 9
Het karakter
spanish vocab - claro 2 - 1.2
svt 2
anglais1
français
englisch
glosor v.45
filosofía
Sonam300-400
BIO Topic 11
anaisnotre environnement
contrôle de svt6eme
contrôle svtles espèces et notre environnement
Latein L.24
Filosofia
Anglais
physic chimicphysic chimie bien relire les question bonne chance :)
Graphing quadratic equations (gr 10 math)
Lägesadjektiv
religion
Specialiteter
Sjukdoms- och behandlingstermer
human body
Complications des décubitus
les complications du décubitus
frölunda damlag
types of demand
floods
floods
verbs
Chimie Physique
Chimie organique
Duits schritt 48 (3vwo)
maths
oppervlaktespanning (water)
Biodiversitébah biodiversité
Connecteurs logique
itpstate of consciousness, learning, perception, memory
egypttest
english
Literatura
Hippocrates and galen
Englisch Vokabeln
normes et societe !
Účt-čtvrtletka
Chaper 12 Psychology
budhist worshipbuddhist
Week 9 - Chapter 16 Somatic Sensation
Kvalitativ metod
christian worshiprs revision
Week 9 - Chapter 17 Special Senses
psycho cog
statistica
AdjetivosGrado comparativo: - [mas + adj + que/de] - [menos + adj + que/de] - [tanto/tan + adj + como] o [igual + de + adj] Superlativo: - relativo: [el/la/los/las + más + adj] - absoluto: [muy + adj] o [adj ...
English: poetry
Biologia celular e histológia
Decisiones economicas coletivasPreguntas sobre un tena de economia de 1 Bachillerato.
psicologia generale
chem 30 term two test
English NRI quiz 3
Another one?
ARTO SUPERIORE muscoli spalla, braccio, avambraccio e mano
voc anglais
Surds
English language topics
Moles and molular mass
TLE (Livelihood) 2nd testStudy
les couleurs
math
Spiritual Self
Französich Vokabeln Unité 1+2 Décuvertescool hier
A christmas carol
Lengua
Arte
definitions
Material Self
power and gender
ak begrippen
geografi
Santi
voc: Meteo, natuur, voyage
francese geografia
Sexual Self
tedesco
Perfectionnement
adjectives and dependent prepositions
Physical Self
quimica
oliviaengels deel 1
chemie kaartjes
Science (2nd test)Study
English (2nd test)study
diritto
JURIDICTIONS ET INSTITUTIONS ADMINISTRATIVES
Law of Contract
Physics
etranger
Irish Legal System
Galileo Galilei
storia del diritto italiano
French
Duits schritt 50 (3vwo)
Duits schritt 51 D-N (3vwo)
Duits schritt 48 (3vwo)
All Station codes
Biologi evolution
Flashcards
Saksa perhesanat
COMMENT EST STRUCTURÉES LA SOCIÉTÉ FRANÇAISE ?
BIOCHEM FINALS
penal 3
penal 2
penal
Cantigas de escarnio e maldizerCantigas de escarnio e maldizer.
historia de España
Poesia trovadorescacaracterísticas da poesia trovadoresca