Wednesday, January 13, 2021

Bridge Pattern

 

应用场景

  • 一个类存在两个或以上的独立维度的变化,且这些维度都需要进行拓展。
  • 不希望使用继承或因为多层次继承导致类的个数急剧增加时。
  • 如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系,可以通过桥接模式使他们在抽象层建立一个关联关系。

优点

  • 分离了抽象与实现。让抽象部分和实现部分独立开来,分别定义接口,这有助于对系统进行分层,从而产生更好的结构化的系统。
  • 良好的扩展性。抽象部分和实现部分都可以分别独立扩展,不会相互影响。

缺点

  • 增加了系统的复杂性。
  • 不容易设计,抽象与实现的分离要设计得好比较有难度。

桥接模式在Android中的源码应用还是非常广泛的。比如
AbsListViewListAdapter之间就是一个桥接模式。





另外,Window 与 WindowManager 之间也是桥接模式。有兴趣的可以去看下源码体会体会


No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能