Patrones de diseño de Java 23-23. El patrón de intérprete del patrón de comportamiento

Además de los principios de diseño en Java, también hay 23 patrones de diseño.

Estos patrones han sido acumulados por los predecesores poco a poco, han ido mejorando y optimizando, y estos patrones de diseño pueden resolver algunos problemas específicos.

Y en estos modos, se puede decir que el uso del lenguaje se refleja plenamente.

¡Entonces vamos a aprender   el modo de intérprete en el   modo de comportamiento hoy     !

Modo intérprete

Primero echemos un vistazo a qué es el modo de intérprete

A través de la enciclopedia podemos ver que no hay nada, aquí te diré como se llama el modo intérprete, y para qué se usa principalmente este modo

Este modo utiliza principalmente algunas palabras y caracteres idénticos o similares, explicaremos estos caracteres y palabras, y luego operaremos

Definición y características del modo intérprete

Definición del modo de intérprete: defina un idioma para el objeto de análisis, defina la representación gramatical del idioma y luego diseñe un analizador para interpretar las oraciones en el idioma. En otras palabras, use el lenguaje compilado para analizar los ejemplos en la aplicación. Este modo implementa una interfaz para el procesamiento de expresiones gramaticales, que interpreta un contexto específico.

El concepto de gramática y oración mencionado aquí es el mismo que la descripción en el principio de compilación. "Gramática" se refiere a las reglas gramaticales del idioma, y ​​"oración" es un elemento en el conjunto de idiomas. Por ejemplo, hay muchas oraciones en chino, y "Soy chino" es una de las oraciones. Se puede usar un árbol gramatical para describir intuitivamente las oraciones en el idioma.

El modo de intérprete es un modo de comportamiento y sus principales ventajas son las siguientes.

1. Buena escalabilidad. Dado que las clases se utilizan para representar las reglas gramaticales del idioma en el modo de intérprete, la gramática se puede cambiar o ampliar mediante mecanismos como la herencia.

2. Fácil de implementar. Cada clase de nodo de expresión en el árbol de sintaxis es similar, por lo que es más fácil implementar su gramática.


Las principales desventajas del modo de intérprete son las siguientes.

1. La eficiencia de ejecución es baja. El modo intérprete suele utilizar una gran cantidad de bucles y llamadas recursivas, cuando la oración a explicar es más complicada, su velocidad de ejecución es muy lenta y el proceso de depuración del código también es más problemático.

2. Causará expansión de clases. Cada regla en el modo de intérprete necesita definir al menos una clase.Cuando hay muchas reglas gramaticales, el número de clases aumentará drásticamente, haciendo que el sistema sea difícil de administrar y mantener.

3. Hay menos escenarios aplicables. En el desarrollo de software, hay muy pocos ejemplos de aplicaciones que necesiten definir la gramática del lenguaje, por lo que este modo rara vez se usa.

La estructura y realización del patrón de intérprete.

Hay una cosa más que decir sobre este modelo, que es la gramática.

gramática

La gramática son las reglas formales que se utilizan para describir la estructura gramatical de un idioma. No hay regla sin reglas. Por ejemplo, algunas personas piensan que la regla del amor perfecto es "atraerse mutuamente, afecto decidido y sin experiencia amorosa en ninguna de las partes". Aunque la última regla es más severa, debe haber reglas. para todo, y el mismo lenguaje, independientemente de que sea lenguaje máquina o lenguaje natural, tiene sus propias reglas gramaticales.

〈句子〉::=〈主语〉〈谓语〉〈宾语〉
〈主语〉::=〈代词〉|〈名词〉
〈谓语〉::=〈动词〉
〈宾语〉::=〈代词〉|〈名词〉
〈代词〉你|我|他
〈名词〉7大学生I筱霞I英语
〈动词〉::=是|学习

Echemos un vistazo a la gramática brevemente y luego veamos los caracteres.

1. Rol de expresión abstracta: define la interfaz del intérprete, acuerda la operación de interpretación del intérprete, e incluye principalmente el método de interpretación interpret ().

2. Rol de expresión terminal: Es una subclase de expresiones abstractas, utilizada para implementar operaciones relacionadas con símbolos terminales en la gramática.Cada símbolo terminal en la gramática tiene una expresión terminal específica que le corresponde.

3. Rol de expresión de símbolo no terminal: También es una subclase de expresiones abstractas, que se utiliza para implementar operaciones relacionadas con símbolos no terminales en la gramática.Cada regla en la gramática corresponde a una expresión de símbolo no terminal.

4. Rol ambiental: Suele contener datos o funciones comunes requeridas por cada intérprete, generalmente se utiliza para transferir datos compartidos por todos los intérpretes, desde aquí los intérpretes posteriores pueden obtener estos valores.

5. Cliente: La tarea principal es convertir la oración o expresión que necesita ser analizada en un árbol de sintaxis abstracto descrito por el objeto intérprete, y luego llamar al método de interpretación del intérprete. Por supuesto, el método de interpretación del intérprete puede También se puede acceder de forma indirecta a través del rol de entorno.

 

Hagamos un ejemplo simple, solo calcule el interés del depósito bancario

primer paso:

Primero definamos un rol de expresión abstracta

Esto se usa principalmente para juzgar si la cadena que pasamos cumple con las condiciones de la expresión correspondiente

El segundo paso:

Cree roles de expresión de terminador e implemente roles de expresión abstracta

Aquí necesitamos almacenar los caracteres que queremos juzgar y almacenarlos en la colección Set, de modo que se pueda garantizar la unicidad de los datos y no se repita el juicio. El método de implementación principalmente juzga si existe

tercer paso:

Cree roles de expresión no terminales y también implemente roles de expresión abstracta

Aquí pasamos una clase de entidad de expresión terminal en ese momento, y luego juzgamos si todas existen en la colección Set en este momento. Si todas existen, significa que nuestro texto se puede explicar.

el cuarto paso:

Crea el medio ambiente

Aquí necesitamos definir la fórmula. Por supuesto, debemos tener más de una fórmula. Si hay más de una, escribiremos múltiples matrices.

 La expresión es un rol de expresión de carácter no terminal. A través de esto podemos detectar si la fórmula que se pasa actualmente en coincidencias o no. Si coincide, obtenemos el principal, la tasa de interés y el tiempo para la multiplicación y la salida.

prueba:

Consigamos una clase de prueba para probar

Salida

Como puede ver, no hay ningún problema con el resultado del cálculo.

 

Está bien, eso es todo, todos miren bien. Practica mucho. Si tiene alguna pregunta, comuníquese conmigo QQ: 2100363119

Este es el último patrón en los patrones de diseño. Espero que vean más los patrones de diseño. Para ser honesto, si domina los patrones de diseño de Java durante la entrevista, creo que su código no es malo.

Finalmente, bienvenidos a todos a visitar mi sitio web personal: lemon1234.com Gracias por dejar un mensaje

Supongo que te gusta

Origin blog.csdn.net/weixin_45908370/article/details/109696919
Recomendado
Clasificación