【Go实现】实践GoF的23种设计模式:桥接模式
    		       		warning:
    		            这篇文章距离上次修改已过437天,其中的内容可能已经有所变动。
    		        
        		                
                
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函数中,我们创建了一个具体的实现化对象和修正抽象化对象,并展示了如何调用操作。这个例子展示了桥接模式的基本用法。
评论已关闭