Categorías
Design Patterns Stories

Historia de patrón de diseño de Java para Proxy – A Slutty Lady

Este trabajo está traducido de un sitio web extranjero que utiliza historias antiguas para explicar los patrones de diseño.

1. ¿Qué es el patrón Proxy / Agent?

Estoy demasiado ocupado para responder a su solicitud, así que vaya a mi proxy. El apoderado debe saber lo que puede hacer el delegador. Es decir, tienen la misma interfaz. El apoderado no puede hacer el trabajo, pero el delegador puede hacerlo. ¡Los personajes que no entiendes pueden ser totalmente ignorados!

2. Historia de patrón proxy

Aquí hay una historia divertida que traduje de «Water Margin». Puede que ya no suene gracioso después de que lo traduzca. Pero de cualquier forma, tienes la idea de un patrón de diseño de proxy.

Aquí está la situación:

Algún mal hombre, por las razones que sea, siempre quiere acostarse con la esposa de algún buen hombre. Entre esas esposas, algunas quieren acostarse con esos hombres malos, pero otras no. Los malos no pueden preguntar directamente a esas esposas. Porque no están seguros de si al que le preguntan le gustaría hacer cosas malas. Sería una situación muy mala si juzga mal. Entonces debería haber un agente / apoderado para hacer este tipo de negocios por esos hombres malos.

Tenemos los siguientes roles en esta situación.

CheatingWife / SluttyWife: una interfaz que define lo que suelen hacer, como seducir a los hombres y ser felices con los hombres.
HouseWifeOne: ella es una esposa guarra en casa.
Mike: que quiere acostarse con las esposas de otros hombres.
Agente comercial: realice este tipo de negocios de consultoría.

  Patrón de diseño de Java: Decorador - Decora a tu novia

3. Diagrama de clases de patrón de proxy

4. Código Java

1. Defina el tipo de esposa infiel
2. define una esposa infiel No. 1
3. Defina el mal agente
4. Deja que los hombres malos empiecen a hacer cosas malas.

interface CheatingWife {
	// think about what this kind of women can do
	public void seduceMan(); // such as eye contact with men
 
	public void happyWithMan(); // happy what? You know that.
}
 
class HouseWifeOne implements CheatingWife {
 
	public void seduceMan() {
		System.out
				.println("HouseWifeOne secude men, such as making some sexy poses ...");
	}
 
	public void happyWithMan() {
		System.out.println("HouseWifeOne is happy with man ...");
	}
}
 
class BusinessAgent implements CheatingWife {
	private CheatingWife cheatingWife;
 
	public BusinessAgent() {
 
		this.cheatingWife = new HouseWifeOne();
	}
 
	public BusinessAgent(CheatingWife cheatingWife) {
		this.cheatingWife = cheatingWife;
	}
 
	public void seduceMan() {
		this.cheatingWife.seduceMan();
	}
 
	public void happyWithMan() {
		this.cheatingWife.happyWithMan();
	}
 
}
 
// see? it looks that agent/proxy is doing
public class Mike {
 
	public static void main(String[] args) {
		BusinessAgent businessAgent = new BusinessAgent();
		businessAgent.seduceMan();
		businessAgent.happyWithMan();
	}
}
  Patrón de diseño de Java: prototipo

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *