Articles of patrones de diseño

MVC (modelo-vista-controlador) – ¿puede explicarse en términos simples?

Tengo que explicarle a un gerente no muy técnico el concepto MVC (modelo-vista-controlador) y me encontré con problemas. El problema es que la explicación debe estar en el nivel “tu abuela lo conseguirá”; por ejemplo, incluso la explicación bastante sencilla que se ofrece en la página Wiki de MVC no funcionó, al menos con mis […]

¿Cuál es el punto del método accept () en el patrón Visitor?

Se habla mucho sobre desacoplamiento de los algoritmos de las clases. Pero, una cosa queda a un lado no explicada. Usan visitantes como este abstract class Expr { public T accept(Visitor visitor) {visitor.visit(this);} } class ExprVisitor extends Visitor{ public Integer visit(Num num) { return num.value; } public Integer visit(Sum sum) { return sum.getLeft().accept(this) + sum.getRight().accept(this); […]

¿Cuándo debería usar el patrón singleton en lugar de una clase estática?

Asigne un nombre a las consideraciones de diseño al decidir entre el uso de una clase única frente a una estática. Al hacer esto, te ves forzado a contrastar los dos, así que cualquier contraste que puedas encontrar también es útil para mostrar tu proceso de pensamiento. Además, a todos los entrevistadores les gusta ver […]

Lógica empresarial en MVC

Tengo 2 preguntas: Q1. ¿Dónde exactamente se encuentra la “lógica comercial” en el patrón MVC? Estoy confundido entre Modelo y Controlador. Q2. ¿La “lógica comercial” es lo mismo que “reglas comerciales”? Sí no, ¿Cuál es la diferencia? Sería genial si pudieras explicar con un pequeño ejemplo.

Diferencia entre el patrón de visitante y el doble despacho

Estoy leyendo sobre el patrón de visitante, y parece lo mismo que Double Dispatch. Hay alguna diferencia entre los dos. ¿Los dos términos significan lo mismo? referencia: http://www.vincehuston.org/dp/visitor.html

Parcelable y herencia en Android

Obtuve una implementación de Parcelable trabajando para una sola clase que no implica herencia. Tengo problemas para descubrir la mejor manera de implementar la interfaz cuando se trata de herencia. Digamos que tengo esto: public abstract class A { private int a; protected A(int a) { this.a = a; } } public class B extends […]

Interfaces fluidas: encadenamiento de métodos

El encadenamiento de métodos es la única forma que conozco de construir interfaces fluidas. Aquí hay un ejemplo en C #: John john = new JohnBuilder() .AddSmartCode(“c#”) .WithfluentInterface(“Please”) .ButHow(“Dunno”); Assert.IsNotNull(john); [Test] public void Should_Assign_Due_Date_With_7DayTermsVia_Invoice_Builder() { DateTime now = DateTime.Now; IInvoice invoice = new InvoiceBuilder() .IssuedOn(now) .WithInvoiceNumber(40) .WithPaymentTerms(PaymentTerms.SevenDays) .Generate(); Assert.IsTrue(invoice.DateDue == now.AddDays(7)); } Entonces, ¿cómo otros […]

¿Hay alguna alternativa viable al patrón GOF Singleton?

Seamos sinceros. El patrón de Singleton es un tema muy controvertido con los progtwigdores de hordas en ambos lados de la valla. Hay quienes sienten que el Singleton no es más que una variable global glorificada, y otros que juran por el patrón y lo usan incesantemente. Sin embargo, no quiero que la Controversia de […]

Patrones de diseño de la capa de acceso a los datos

Tengo que diseñar una capa de acceso a datos con .NET que probablemente utilizará más de un sistema de administración de bases de datos (Mysql y Sql Server) con el mismo diseño relacional. Básicamente, tiene que ser simple cambiar de una base de datos a otra, por lo que me gustaría que me recomendara algunos […]

El mejor patrón de diseño para la función “deshacer”

Posible duplicado: Patrón de diseño para deshacer el motor En general, ¿cómo lidias con el soporte de una función de “deshacer” en tu aplicación? He trabajado tanto en aplicaciones web como en aplicaciones de escritorio, y nunca me he sentido realmente cómodo con ningún sistema de “deshacer” que haya creado.