Articles of modelli di progettazione

Interfacce Marker in Java?

Mi è stato insegnato che l’interfaccia Marker in Java è un’interfaccia vuota e viene utilizzata per segnalare al compilatore o alla JVM che gli oggetti della class che implementano questa interfaccia devono essere trattati in modo speciale, come la serializzazione, la clonazione, ecc. Ma ultimamente ho imparato che in realtà non ha nulla a che […]

Dichiarazioni di switch di grandi dimensioni: Bad OOP?

Sono sempre stato dell’opinione che le dichiarazioni switch di grandi dimensioni siano un sintomo di un cattivo design OOP. In passato, ho letto articoli che trattano questo argomento e hanno fornito degli approcci basati su OOP altisonanti, tipicamente basati sul polimorfismo per istanziare l’object giusto per gestire il caso. Ora mi trovo in una situazione […]

Qual è la differenza tra il modello di Builder Design e il modello di Factory Design?

Qual è la differenza tra il modello di progettazione Builder e il modello di progettazione di fabbrica? Qual è più vantaggioso e perché? Come posso rappresentare le mie scoperte come un grafico se voglio testare e confrontare / contrastare questi modelli?

Un modo per trasmettere un tipo di base a un tipo derivato

Non sono sicuro se questa sia una cosa strana da fare o no, o se è un po ‘come l’odore del codice … ma mi stavo chiedendo se ci fosse un modo (una sorta di modello di oop sarebbe bello) per “lanciare” un tipo di base a una forma del suo tipo derivato. So che […]

Sottoclassi di una class Java Builder

Dare questo articolo del Dr Dobbs e in particolare il Pattern Builder, come gestiamo il caso della sottoclassi di un Builder? Prendendo una versione ridotta dell’esempio in cui vogliamo sottoclass per aggiungere l’etichettatura OGM, un’implementazione ingenua sarebbe: public class NutritionFacts { private final int calories; public static class Builder { private int calories = 0; […]

Come implementare la serializzazione in C ++

Ogni volta che mi ritrovo a dover serializzare oggetti in un programma C ++, ricado a questo tipo di pattern: class Serializable { public: static Serializable *deserialize(istream &is) { int id; is >> id; switch(id) { case EXAMPLE_ID: return new ExampleClass(is); //… } } void serialize(ostream &os) { os << getClassID(); serializeMe(os); } protected: int […]

Quando dovremmo usare Observer and Observable

Un intervistatore mi ha chiesto: Che cos’è Observer and Observable e quando dovremmo usarli? Non ero a conoscenza di questi termini, quindi quando sono tornato a casa e ho iniziato a usare Google su Observer and Observable e ho trovato alcuni punti da diverse risorse: 1) Observable è una class e Observer è un’interfaccia. 2) […]

Perché abbiamo bisogno di una lezione immutabile?

Non sono in grado di ottenere quali sono gli scenari in cui abbiamo bisogno di una class immutabile. Hai mai affrontato un simile requisito? o puoi per favore darci un esempio reale in cui dovremmo usare questo modello.

Modello di fabbrica. Quando usare i metodi di fabbrica?

Quando è una buona idea usare i metodi di fabbrica all’interno di un object invece di una class di fabbrica?

Modi per eliminare lo switch in codice

Quali sono i modi per eliminare l’uso di switch in code?