javascript y patrones de diseño(1)

Suponga que un director necesita filmar una película, se necesitan actores y fotógrafos, el director llama a la acción y los miembros del personal toman sus posiciones.
// 摄影师
class Photographer {
  record() {
    console.log('start record')
  }
}
// 演员
class Actors {
  performance() {
    console.log('start performance')
  }
}

// 导演
class Director {
  action() {
    console.log('各部门准备,开始!')
    const photographer = new Photographer()
    const actors = new Actors()
    photographer.record()
    actors.performance()
  }
}

const director = new Director()
director.action()
Ahora necesito agregar otro gaffer
class LightingEngineer {
  openLight() {
    console.log('open light')
  }
}

class Director {
  action() {
    console.log('各部门准备,开始!')
    const photographer = new Photographer()
    const actors = new Actors()
    const lightingEngineer = new LightingEngineer()
    photographer.record()
    actors.performance()
    lightingEngineer.openLight()
  }
}
const director = new Director()
director.action()

#####Necesito agregar accesorios, sonido, asistente de dirección, etc., y luego el director está agotado
#####Porque cada vez que el director llama para comenzar, debe asignar diferentes tareas al personal, que Es muy fácil cometer errores, el cansancio del director también es inevitable.


#####En la escena real, el director gritó "¡Trabajadores y todos, acción!" Todos comenzaron su propio trabajo. #####El personal capacitado sabrá lo que debe hacer cuando el director llame a la acción, entonces, ¿cómo debe modificamos el código?

#####Agregue su propio método de acción a cada persona
class Photographer { record() { console.log('start record') } action() { this.record() } } class Actors { performance() { console . log('start performance') } action() { this.performance() } } class LightingEngineer { openLight() { console.log('open light') } action() { this.openLight() } }






















// 将工作人员实例当作参数传入action 方法
class Director {
  action(members) {
    members.map(member => {
      member.action()
    })
  }
  cut(){
    console.log('cut')
  }
}

const director = new Director()
const photographer = new Photographer()
const actors = new Actors()
const lightingEngineer = new LightingEngineer()
director.action([photographer, actors, lightingEngineer])
director.cut()
director.action([photographer, actors])
Bueno, el director puede concentrarse en filmar y el personal también conoce sus responsabilidades.
Si comprende el contenido anterior, ha dominado los principios de la encapsulación polimórfica y los patrones de estrategia, por lo que no necesita saber qué son los principios de encapsulación polimórfica y los patrones de estrategia, ya puede usarlos, y todos los principios y patrones de diseño son Fue creado para resolver problemas específicos.
En este momento, te preguntarás, ¿por qué necesitas aprender patrones de diseño? Solo necesito saber cómo usarlos. De hecho, los patrones de diseño pueden entenderse como términos profesionales. Por ejemplo, cuando juegas King of Glory, decir 4-1 empujón dividido.
El empuje dividido 4-1 es una estrategia en el juego que a menudo se usa para aumentar la eficiencia del empuje de la torre de un equipo. Esta estrategia se basa en la superioridad numérica, con cuatro jugadores concentrados en un carril para empujar torres, mientras que el otro se mueve a otra parte para presionar a otras torres enemigas o matar oponentes. De esta manera, la torre del oponente se puede derribar más rápido, creando una oportunidad para que nuestro lado gane.

Los patrones de diseño son mejores prácticas en el desarrollo de software que brindan soluciones a problemas en situaciones específicas. Comprender el propósito y el método de los patrones de diseño es la clave para comprender verdaderamente y aplicar patrones de diseño de manera efectiva.

La resistencia puede provenir de malentendidos o falta de familiaridad con el concepto de patrones de diseño. Algunas personas pueden pensar que los patrones de diseño complican el código o agregan trabajo adicional. En realidad, sin embargo, los patrones de diseño están destinados a mejorar la capacidad de reutilización, mantenimiento y extensibilidad del código, lo que hace que el código sea más flexible y adaptable al cambio.
La copia de memoria también es un problema que debe evitarse. Si bien los patrones de diseño brindan posibles soluciones, no significa que todos los problemas requieran el uso de patrones de diseño. El propósito de comprender adecuadamente los patrones de diseño es saber cuándo y cómo usarlos, no simplemente aplicarlos a cada escenario.
Para comprender verdaderamente los patrones de diseño, se recomienda que no solo aprenda sus definiciones e ideas básicas, sino que también profundice en sus principios y prácticas. Esto incluye comprender los problemas, los beneficios y la aplicabilidad detrás de los patrones de diseño y tratar de aplicarlos en proyectos reales. A través de la práctica y la experiencia, podrá comprender mejor los patrones de diseño y aplicarlos a las situaciones adecuadas.

Supongo que te gusta

Origin blog.csdn.net/weixin_42657666/article/details/131824609
Recomendado
Clasificación