Go patrones de diseño de modo --Bridge

parte abstracta y un modo de puente para lograr una cierta separación. Tal que las dos partes separadas de extensión.

modo de puente es el modo de estrategia similar, excepto que una serie de algoritmos que algoritmo de modelo de política de paquete puede ser reemplazado con uno al otro.

modo de Estrategia de alcanzar la parte abstracta y separación parcial se puede variar de forma independiente.

Puente paquete 

de importación ( 
	"FMT" 
) 

Tipo de interfaz {// seleccionar una ruta Camino 
	Camino () Cadena 
} 

escribir Trans {// transporte seleccionado interfaz de 
	Transporte () Cadena 
} 

escribir Resault struct {// crear un puente, puede haber varias combinaciones 
	camino de la manera 
	Trans Trans 
} 

// función de puente 
FUNC HowtoSchool (camino camino, Trans Trans) * Resault { 
	retorno {& Resault 
		manera: camino, 
		Trans: Trans, 
	} 
} 

FUNC (el presente Resault *) GotoSchool () { 
	fmt.Println ( "el Elija "this.way.Way (), this.trans.Transport ()," ") a la Escuela 
} 


// instanciar una ruta 
struct {tipo WAY1 

} 

método del Esquema 1 // darse cuenta de cómo obtener  
func (esto * WAY1 ) Camino () {string
	retorno" [WAY1] " 
} 

// seleccionar una ruta, una ruta de retorno del Ejemplo 1 
FUNC ChooseWay1 () {camino 
	de retorno y WAY1 {} 
} 

// instantiate Esquema 2 
Tipo de Way2 struct { 

} 

El método del Esquema 2 // darse cuenta de cómo llegar 
FUNC (el presente Way2 *) camino String () { 
	return "[Way2]" 
} 

// 2 seleccionar una ruta, un ejemplo de ruta de regreso 2 
FUNC ChooseWay2 () camino { 
	return & Way2 {} 
} 

// caminar instantiate a la escuela 
estructura tipo paseo { 

} 

// seleccione caminar a la escuela, devuelve una instancia caminar 
FUNC ChooseWalk () Trans { 
	return & paseo {} 
} 

// métodos implementados paseo 
FUNC (al este paseo *) Transporte () cadena { 
	retorno "[pie]" 
} 

// caminar a la escuela ejemplos de la 
estructura de tipo de bicicletas { 

} 

// eligen caminar a la escuela, devuelve una instancia caminar
ChooseBike FUNC () Trans { 
	retorno {} y la bici
} 

// métodos para lograr paseo 
FUNC (* la presente bicicletas) Transporte () {Cadena 
	retorno "[Bicicleta]" 
}

 

	Cómo: = bridge.HowtoSchool (bridge.ChooseWay1 (), bridge.ChooseWalk ()) 
	how.GotoSchool () 

	cómo = bridge.HowtoSchool (bridge.ChooseWay2 (), bridge.ChooseWalk ()) 
	how.GotoSchool () 

	cómo = puente .HowtoSchool (bridge.ChooseWay1 (), bridge.ChooseBike ()) 
	how.GotoSchool () 

	cómo = bridge.HowtoSchool (bridge.ChooseWay2 (), bridge.ChooseBike ()) 
	how.GotoSchool ()

  

 

 

Supongo que te gusta

Origin www.cnblogs.com/flycc/p/12631768.html
Recomendado
Clasificación