#指尖人生#面向对象设计常用的设计模式-桥接模式

历览千载书,时时见遗烈。这篇文章主要讲述#指尖人生#面向对象设计常用的设计模式-桥接模式相关的知识,希望能为你提供帮助。
设计模式这一概念最初源于建筑学,它的提出者克里斯托弗-亚历山大认为建筑设计要围绕以人为本的目的。建筑物要基于社会和人性来设计,程序设计亦是如此。

虽然简单套用模式并不能解决所有问题,但是模式这一理念对一些广泛的基础场景指出了最佳实践,是一种务实的分析和设计方法,是值得程序设计者学习和理解的,并时刻提醒设计者,设计模式的核心意义就是以人为本,设计要服务于人。

1994年,由四位面向对象领域专家合著出版了《设计模式:可复用面向对象软件的基础》,这本书中介绍了程序设计中常用的23中设计模式。这篇文章将介绍其中之一-桥接模式
模式简介
桥接模式是一种结构型模式,其核心是将抽象部分与它的现实部分相分离,使它们可以独立地变化。

现实应用
喜欢军事的朋友可能了解一种在奥地利设计生产的斯太尔步枪,该枪最大的一个特点是采用了模块化设计,短时间内可以将枪管和部件进行拆卸和组装,使得它可以变成冲锋枪、突击步枪、轻机枪,可以用于巷战、进攻、压制等不同目的的作战。
这种一枪三用的功能来源于它巧妙的可组合设计,展示随身携带三根枪管和必要组件即可,而不必背上三把不同的枪。
在程序开发中,采用不同的维度分解一系列对象,然后采用组合的方式,根据需要灵活组合,这样的过程就是解耦和提高灵活度的过程,也就是本篇介绍的桥接模式。
程序设计分析
在程序设计过程中如何避免复杂的继承来描述业务?如何用组合和关联来提高程序的灵活性?
【#指尖人生#面向对象设计常用的设计模式-桥接模式】采用组合来替代多层的继承,将类之间的继承关系转换为动态的组合关系,使得系统更加灵活,并且易于扩展,同时还可以降低系统中类定义的数量。
解决方案
通过业务分析,将业务描述从多个维度拆分并展开,使对象可以在不同的维度上独立变化,然后再根据需要组合这些维度,形成所需要的结构模型。也就是通过先拆再连的过程达成灵活组合的目的。
当一个对象具有多个变化因素的时候,需要考虑依赖于抽象的实现,而不是具体的实现。当多个变化因素再多个对象间共享时,需要考虑将变化的部分抽象出来再进行聚合。将现实抽离出来,再实现抽象,使得对象的具体实现以来于抽象,这样做符合依赖倒置原则和合成复用原则。同时,将可以共享的变化的部分抽离出来,也可以减少代码的重复信息。
?

    推荐阅读