[Fundación Java] --- desarrollo Java, la capa de servicio debe escribir la interfaz

Se estima que muchos estudiantes de desarrollo de Java han descubierto que la capa de servicio necesita escribir una interfaz y luego escribir la clase de implementación de la interfaz, pero esta interfaz no tendrá una segunda implementación desde el comienzo del proyecto hasta el cierre del proyecto. Clase de servicio? Si aún no lo ha pensado, piénselo.

Los internautas admiten el modo de interfaz, las posibles razones son las siguientes:

1. La mayoría de los proyectos se desarrollan en base al marco de Spring. Sabemos que el estilo de desarrollo de Spring está orientado a la interfaz, por lo que muchas personas se han mudado de acuerdo con él. Si realmente solo tiene esta razón, piense en ello. No se trata solo de aprender trucos, no de la fuerza interna.
2. La interfaz es polimórfica. Agregar la interfaz le dará más flexibilidad. No hay nada de malo en eso.
3. Si se desarrollan varias personas, y cada persona es responsable de una capa, entonces la persona a cargo del servicio puede definir un conjunto de interfaces para los estudiantes en la capa del controlador en la etapa inicial de desarrollo, y escribir lentamente después de terminar. Básicamente, este tipo de modo de desarrollo no está disponible ahora. Es básicamente una tarea de desarrollo dividida por un módulo comercial, y rara vez se divide de acuerdo con este nivel.
4. Varios patrones de diseño usarán interfaces, correspondientes a múltiples implementaciones. Esto es cierto. Java hereda e implementa dos métodos, especialmente la implementación de la interfaz. Sin esta función, muchos patrones de diseño no pueden usarse. Esto no es un problema.

Mis pensamientos

Sobre la interfaz de la capa de servicio.
Úselo cuando debería, pero no lo use cuando no deba.
También se puede considerar que no se debe usar la clase básica, y se deben usar negocios complejos.

Los motivos son los siguientes:

1. Una clase básica, como un usuario de la tabla de usuario, corresponde a userService, es difícil tener múltiples implementaciones. Después de escribir un userService para un proyecto básico, no se cambiará durante mucho tiempo, y mucho menos implementaciones múltiples, por lo que esto En el caso de que no sea necesario escribir una interfaz, escriba una clase de servicio: UserService. Esta es la razón por la cual muchas personas se han quedado perplejas desde el comienzo de la codificación, incluyéndome a mí. Al principio, miré el código antiguo del proyecto, incluido algún código en github, incluidas algunas herramientas para generar automáticamente complementos de código. Este estilo de interfaz me llevó a Durante un período de tiempo, me pregunté si tenía un gran defecto en mi punto de conocimiento, por lo que no podía ver los beneficios de este modo de interfaz.
Por supuesto, si su tabla corresponde a múltiples fuentes de datos, puede considerar usar el modo de interfaz, pero generalmente no aparecerá.
2. Los servicios complejos deben usar interfaces. Por ejemplo, para un centro de pedidos, una interfaz de colocación de pedidos, los parámetros de entrada básicos son la lista de productos y la información del usuario. En correspondencia con diferentes situaciones de negocios, habrá diferentes implementaciones de pedidos y varios departamentos de negocios llamarán a la misma interfaz de pedidos. En este momento, se implementarán diferentes interfaces.

En este punto, muchas personas usarán la palabra estándar como teoría. Dado que los servicios complejos tienen que escribir interfaces, simplemente deberían escribirse como interfaces. ¿No es bueno?
Para esta declaración, solo quiero refutar con una oración: algunas cosas que obviamente no tienes hasta que las tienes, pero debes insistir en hacerlo, excepto para algunas personas con trastorno obsesivo compulsivo, realmente no puedo pensar en ninguna razón para que lo haga.

Resumen:

El servicio no usa una interfaz, lo cual no es tan complicado. He resumido algunos puntos de referencia:
1. El servicio correspondiente a una clase de entidad básica simple no necesita usar una interfaz, especialmente en el modo de microservicio.
2. Además del servicio correspondiente a la clase básica simple, lo mejor es utilizar el modo de interfaz para otros servicios, porque en la capa empresarial, nadie se atreve a garantizar qué expansión será algún día.

Di una oración más:

En mi opinión, de hecho, se pueden omitir muchos lugares, por ejemplo, en el modo de microservicio, se puede omitir la capa de servicio de un servicio simple. Pero mi premisa es simple. Por ejemplo, una tabla de departamento solo proporciona interfaces simples como adición, eliminación, modificación e inspección. Cuando no hay demasiadas cosas complicadas, la capa de servicio puede omitirse por completo. La capa de dao escribe SQL y la capa de controlador escribe la implementación. Después de eso, la función http queda expuesta.

En muchos lugares, creo que tenemos que pensar con audacia, no necesariamente los anteriores deben ser correctos. Si encuentra un lugar que es redundante y encuentra que sí es redundante después de varios exámenes, debe eliminarlo en lugar de Sigue la corriente.

De lo contrario, un día, cuando alguien más joven que usted se acercó para preguntarle: "Senior, ¿por qué necesita agregar una interfaz a esta capa de servicio, y escribir directamente no es bueno?", Solo puede usar: "No sé, Se ha escrito así antes, así que lo seguí "para responder.

203 artículos originales publicados · elogiados 186 · 210,000 visitas

Supongo que te gusta

Origin blog.csdn.net/java_zhangshuai/article/details/104406039
Recomendado
Clasificación