Day49. 桥接模式

本文同步更新於blog

Bridge Pattern

将抽象部分与实现部分分离,使它们都可以独立地变化。


桥接模式会将类别分为两类:
分别是抽象类别 (Abstraction)实现类别 (Implementor)

抽象类别指的是高层级的抽象层。本身不具备具体逻辑。
而实现类别会由低层级的实作层来负责。


举例:

抽象类别 -> 实现类别
通话介面 -> 室内电话、行动电话
登入介面 -> Web、App


优点
透过分离抽象层与实作层,可根据需求在不同层级上,作相应的变化。

缺点
会使程序码复杂度提高。


与其他模式的比较:

[策略模式]:
策略模式属於 行为型 (behavioral) 的设计模式,
而桥接模式属於 结构型 (structural) 的设计模式。

这使着两者在目的上,有着根本的不同。

策略模式可能会随着运行,动态地调整策略。
而桥接模式则会像是两种不同的实作架构。

[状态模式]:
状态模式属於 行为型 (behavioral) 的设计模式。
可能会在运行过程中改变内部状态,进而改变具体行为。


举例:

设计模式 使用情境
策略模式 拥有多家第三方金流,需在主要金流服务挂点时,采用备用金流机制。
状态模式 行人号志小绿人会随着当前标志不同,显示不同的图样。
桥接模式 框架实作资料库连线的介面,与其各自不同的具体实作。

ʕ •ᴥ•ʔ:以Laravel而言,设计模式到後来常常会混血,
最终还是回归到S.O.L.I.D的思考。


<<:  Day 19 - 卷积神经网络 CNN (4)-Pooling layer & Activation Function

>>:  [资料库] 学习笔记 - case when then 和 预存程序

D27 / 怎麽测试? - Testing Compose

今天大概会聊到的范围 Testing Compose 的 Test 属於 UI Test ,在执行...

Day20 让电脑透过数据机和有线、无线网路传递讯息

上一回讲的是透过数据机连结各种电脑周边 今天来分享数据机更强大的功能,传递讯息 可以先查询 mode...

How to split a (HUGE) pcap file into a set of smaller ones ? keyword: tcpdump

tcpdump Introduction wiki: tcpdump 是一个执行在命令列下的嗅探工具...

Day18 Gin with GORM

What is ORM ORM全名为Object-Relational Mapping 物件关系对应...

自己在家接收来自飞机的ADS-B讯号!

想看飞机又不想透过 FlightRadar24 !? 那就自己架一个接收站吧 ! 一、认识 ADS-...