【Go实现】实践GoF的23种设计模式:桥接模式
package main
import "fmt"
// 抽象化角色
type Abstraction interface {
Operation() string
}
// 修正抽象化角色的具体实现
type RefinedAbstraction struct {
implementation Implementation
}
func (ra *RefinedAbstraction) Operation() string {
return "Refined operation with " + ra.implementation.OperationImp()
}
// 实现化角色
type Implementation interface {
OperationImp() string
}
// 具体实现化角色
type ConcreteImplementation struct{}
func (ci *ConcreteImplementation) OperationImp() string {
return "Concrete implementation"
}
func main() {
// 客户端代码
// 创建实现化对象
concreteImpl := &ConcreteImplementation{}
// 创建修正抽象化对象
refinedAbstraction := &RefinedAbstraction{
implementation: concreteImpl,
}
// 调用操作
result := refinedAbstraction.Operation()
fmt.Println(result)
}
这段代码定义了抽象化角色Abstraction
和实现化角色Implementation
的接口,并创建了一个修正抽象化角色RefinedAbstraction
。在main
函数中,我们创建了一个具体的实现化对象和修正抽象化对象,并展示了如何调用操作。这个例子展示了桥接模式的基本用法。
评论已关闭