Seguridad con carácter, o algunas palabras más sobre el patrón Singleton

- ¿Cómo, y también es singleton? ¡Y pensé que era normal!





- ¿Cuántas veces puedo decirte que las palabras singleton, mediator, decorator e incluso prototype no tienen nada que ver con la orientación del código?





(conversación llamando a un fumador y llamando a un programador normal)





Hola a todos, soy Maxim Kravets , director ejecutivo del equipo de ingeniería web de Holyweb, adeptos de JavaScript. Y hoy quiero hablar de patrones de diseño.





Echemos un vistazo a un pequeño fragmento de código:





@Injectable()
export class SomeClass implements SomeInterface {
  private currentData: Data
 
 setData() {
      this.currentData = new Data()
}
      
      



, : « decorator SomeClass Dependency Injection, setData Builder new currentData ...»





. , , . , , . — . — , . .





— . , — . , « ». , — , . ( Singleton).





. . ,

Singleton — - , . : 









,





, :





public static getInstance(): SingletonClassName { 
    !instance ? instance = new SingletonClassName : instance
}
      
      



, ? ! , ! , …





(), ( ) , ( , ). — 100 ().  





( ) 100 . , , 100 . , …





, )) , . , () ? ? .





( ) . , - — . ? — ! , (). (), ( ...), (... ).





, , . , . 





. .

Singleton — (), , () , . 





//   
class DataBase {
//       Singleton-
private static instance

//   ,     
//       new
private constructor() {
  //       
  ….
  // ,    
  this.instance = null
}
//     
//  ,       Singleton-
public static getInstance() {
if ( this.instance === null ) {
//   ,  
 this.instance = new DataBase()
}

//   ,  
return this.instance
}
//     query  
//    
public getQuery(payload) {
	//    
	...
}
}

//   
class AppModule {
	//    
	Data() {		
		//   
		let foo = DataBase.getInstance()
		let bar = DataBase.getInstance()

		// foo    ,
		//   bar
		foo.getQuery("SELECT ...")
		bar.getQuery("SELECT ...")
}
}
      
      



, Singleton , , , Singleton , .





Singleton — TypeScript, , .





, Singleton , « » — , . , , , .





Singleton, , , , TTD.





? , ! , , . , (DI), ( Singleton) , .





. . , ?

. Singleton — , . . , , , . Singleton. , :













.





.





.





.





.





.





, Singleton «» . , Singleton. Singleton.





, , . , , : Telegram @maximkravec





¿Hay algo que agregar? ¡Deja tus comentarios! Agregaremos los más interesantes al artículo para mejorarlo.








All Articles