Red de conocimiento informático - Consumibles informáticos - Programación orientada a interfaz, ¿cómo operarla?

Programación orientada a interfaz, ¿cómo operarla?

Programación orientada a interfaces [zz]

En el capítulo anterior, mencionamos un ejemplo de diseño de interfaces. ¿Por qué defendemos el diseño de interfaces? Martin Fowler señaló en su libro Analysis Patterns que los problemas de análisis deberían estar en el nivel conceptual y no en el nivel de implementación. ¿Cuál es el nivel de conceptos? En pocas palabras, se trata de analizar qué debería hacer el objeto, en lugar de cómo debería hacerlo. El primero pertenece a la etapa de análisis y el segundo pertenece a la etapa de diseño o incluso de implementación. En ingeniería de requisitos, existe una cosa llamada tarjeta CRC, que se utiliza para analizar las responsabilidades y relaciones de las clases. De hecho, ese método consiste en realizar un diseño orientado a objetos desde un nivel conceptual. Por lo tanto, si desea analizar desde un nivel conceptual, debe observar cómo el programa representa conceptos en el mundo real desde la perspectiva de un experto en el dominio. La siguiente oración es un poco confusa. Desde la perspectiva de la implementación, el nivel de concepto corresponde al contrato y la forma de implementación del contrato incluye interfaces y clases base. En pocas palabras, el análisis a nivel conceptual consiste en diseñar una interfaz (o clase base) sin preocuparse por la implementación específica de la interfaz (la implementación se pospone a las subclases). Combinado con la discusión anterior, también podemos inferir que la interfaz debe ajustarse a los conceptos del mundo real.

Martin Fowler mencionó un ejemplo de este tipo en otro trabajo, que explica muy bien la idea de la programación de interfaces:

interface Person {

public String name( );

nombre público vacío (String newName);

salario público de dinero ();

salario público vacío (Dinero nuevoSalario);

p >

public Money payAmount ();

public void makeManager ();

}

Ingeniero de interfaz extiende Persona{

public void numberOfPatents (valor int);

public int numberOfPatents ();

}

interfaz Vendedor extiende Persona{

public void numberOfSales (int numberOfSales);

public int numberOfSales ();

}

interface Manager extiende Person{

presupuesto vacío público ( Valor monetario);

Presupuesto monetario público ();

}

Como puede ver, para representar a las personas en el mundo real (aquí en realidad se refiere a empleados (conceptos), ingenieros, vendedores y gerentes. El código está diseñado con una jerarquía de herencia basada en los puntos de vista naturales de las personas y logra una buena reutilización. Además, podemos concluir que la interfaz es relativamente estable.

Echemos un vistazo a la parte de implementación:

clase pública PersonImpFlag implementa Persona, Vendedor, Ingeniero,Gerente{

// Implementación de Vendedor

Vendedor estático público nuevoSalesman (Nombre de cadena){

resultado PersonImpFlag;

resultado = nuevo PersonImpFlag (nombre);

resultado.makeSalesman();

devolver resultado ;

};

public void makeSalesman () {

_jobTitle = 1;

};

public boolean isSalesman () {

return _jobTitle == 1;

};

public void numberOfSales (valor int){

requireIsSalesman () ;

_numberOfSales = valor;

};

public int numberOfSales () {

requireIsSalesman ();

p>

return _numberOfSales;

};

private void requireIsSalesman () {

if (! isSalesman() ) throw new PreconditionViolation ("No soy vendedor") ;

};

private int _numberOfSales;

private int _jobTitle;

}

Este es uno de los métodos de implementación llamado Bandera Interna. Aquí solo damos un ejemplo. De hecho, tenemos muchas soluciones, pero no nos importa. Porque siempre que la interfaz sea lo suficientemente estable, se permiten cambios importantes en la implementación interna. Si está interesado en cómo implementarlo, puede consultar el artículo de Matrin Fowler sobre modelado de personajes o una de mis notas mientras lee este artículo.

A través del ejemplo anterior, podemos entender que el mayor beneficio de separar la interfaz y la implementación es que el código de implementación se puede modificar sin que el cliente lo sepa. Esta característica es muy adecuada para la tecnología de capas. Uno se utiliza para llamadas entre capas. Lo más tabú entre capas es un acoplamiento demasiado alto o cambios demasiado frecuentes. Las interfaces bien diseñadas pueden resolver este problema. El otro se utiliza en aquellas partes inestables. Si algunos requisitos son muy variables, definir interfaces también es una solución. Para dar un ejemplo inapropiado, una interfaz bien diseñada es como el enchufe universal que usamos todos los días. Se puede usar sin importar cómo cambie el enchufe.

Finalmente, me gustaría enfatizar que una buena definición de interfaz debe surgir de las necesidades, y definitivamente no es algo que los programadores se devanen los sesos para encontrar.

上篇: ¿Cómo hace el sector de la restauración un buen trabajo a la hora de desviar el tráfico hacia zonas privadas? 2022 será el primer año del despertar del tráfico de restauración privada. Al ver que cada vez más empresas de catering apuestan por el tráfico de dominios privados, muchas marcas de catering han bajado su perfil y se han sumado. Pero ¿qué es exactamente el tráfico de dominio privado? Muchos comensales no lo saben. Todo el mundo lo tiene aún menos claro y todavía hay muchos escollos aquí. Si era una era en la que todos pescaban juntos en el océano, ahora es una era en la que construyes tus propios estanques y crías peces. Se trata del "tráfico de dominio privado" que es muy popular hoy en día. 1. El tráfico de dominio privado es un proyecto sistemático. Muchos operadores de catering tienen una idea equivocada y piensan que realizar tráfico de dominio privado significa atraer personas, crear grupos y hacer publicidad. Este malentendido les hizo dedicar mucho tiempo al tráfico de dominios privados, pero como resultado, no hubo conversión y muchos grupos se convirtieron en grupos muertos. La razón de este entendimiento es que muchos profesionales de la restauración no consideran el tráfico de dominio privado como un proyecto sistemático. El tráfico de dominio privado es un conjunto de soluciones de tráfico utilizadas para diferentes propósitos. Hay al menos seis propósitos para utilizar el tráfico de un dominio privado, incluido el drenaje del tráfico, la retención, los seguidores activos, la monetización, la recompra y la autopropagación. Detrás de cada propósito hay una serie de métodos, y los métodos son diferentes para diferentes propósitos. Después de años de exploración, el mercado nos ha brindado muchos casos completos de los cuales aprender. Para los propietarios de restaurantes, lo que deben hacer es distinguir la etapa de su dominio privado y los objetivos que desean lograr, encontrar casos de referencia específicos y formular métodos. 2. No puedes imitar campos privados. Tienes que aprender deliberadamente del dueño del restaurante. Al crear un dominio privado, debes tener claro qué objetivos quieres alcanzar y evitar el error de copiar métodos de otras personas sólo porque el dominio privado de una determinada marca o tienda es muy popular. Al igual que muchos restaurantes de estofados en el pasado, cuando vieron que el servicio de Haidilao se hacía popular, lo copiaron. Al final, no aprendieron nada y, en cambio, retrasaron su negocio. 3. El ámbito privado no es sólo una "oportunidad" para las grandes marcas, sino también una "oportunidad" para las pequeñas y medianas marcas y tiendas. Muchos operadores de restauración quieren intentar imitar a las grandes marcas cuando las ven haciendo negocios privados. Después de imitar, descubrieron que el dinero y la mano de obra invertidos por las grandes marcas en el sector privado no podían permitírselo, por lo que se dieron cuenta de que el sector privado era una oportunidad para las grandes marcas, pero las marcas pequeñas y medianas no podían permitírselo. La verdad es que el sector privado es una oportunidad para todos. Las grandes marcas tienen mercados enormes y necesitan más tráfico para respaldar las ganancias. Atacar dominios privados será más complejo y sofisticado e implicará más costos y mano de obra. Lo que las pequeñas y medianas marcas deben hacer es aclarar qué objetivos quieren lograr a través del dominio privado en función de la situación real de sus propias tiendas y desarrollar un juego de dominio privado que se adapte a sus necesidades. No es necesario que sea demasiado complicado al principio ni que suponga una gran inversión. Comience corriendo rápidamente en pequeños pasos, repita repetidamente y luego haga una bola de nieve como una bola de nieve hasta que se convierta en un árbol imponente. 4. Cómo realizar un drenaje de tráfico privado en la industria de la restauración (1) Drenaje de tráfico fuera de línea Un cliente suele pasar por varios pasos, como entrar a la tienda, recoger comida, realizar pedidos y cenar. Estos enlaces se pueden configurar con los carteles correspondientes para atraer tráfico. a. Entrar a la tienda: Cuando los consumidores ingresan a la tienda, lo primero que ven es la puerta de entrada de la tienda y el lugar al lado de la puerta de entrada. Entonces estos dos lugares pueden convertirse en nuestros puntos de drenaje. Tomemos como ejemplo mi propia experiencia personal en McDonald's. Tan pronto como ingrese, verá un cartel horizontal en la puerta de vidrio de la tienda, con el truco de "Disfrute de un 40% de descuento por 9,9 yuanes, devuelva el libro de inmediato, ahorre dinero" para atraer a los consumidores a escanear el código para Ingrese al mini programa WeChat. Después de entrar por la puerta, se colocó un cartel enrollable junto a la puerta, informando a los usuarios sobre una actividad conjunta reciente con Coca-Cola, "Compre un paquete grande y obtenga una taza de Coca-Cola gratis", y guiando a los usuarios a descargar la aplicación. b. Pedir y recoger comida: durante las horas punta para comer, los consumidores suelen hacer cola en la barra. En este momento, si hay un letrero en el piso de la tienda para guiar a los consumidores a realizar pedidos en una plataforma privada, no solo reducirá la presión laboral de los empleados, sino que también ahorrará tiempo en la cola de los consumidores y aliviará su ansiedad al realizar el pedido. . Algunas marcas pedirán a los camareros que recomienden a los consumidores que se unan al grupo corporativo de WeChat en forma de beneficios cuando los usuarios recojan sus comidas. Los consumidores generalmente no se negarán cuando escuchen que existen beneficios. (2) El drenaje del tráfico en línea toma a Ruixing como ejemplo. Las plataformas de tráfico existentes de Luckin incluyen la aplicación, la cuenta oficial de WeChat y la comunidad, cada una de las cuales tiene un tráfico enorme. a. Desvío de la cuenta oficial de WeChat: Luckin Coffee tiene al menos un millón de fanáticos y el volumen de lectura de Guan Wei para cada artículo principal es de casi 654,38 millones. Para introducir el tráfico de cuentas públicas en el grupo corporativo WeChat para operaciones más refinadas, Luckin a menudo desvía el tráfico a través de una serie de artículos de bienestar. Un tweet de asistencia social sobre recibir cupones ha sido leído más de 65,438 millones y la tasa de conversión es al menos del 1%, es decir, 10,000 personas. 下篇: ¿Hay Tablestacas de acero de 9 metros en alquiler cerca de Longxi, Longgang?