设计模式-适配器模式

本文意在分享自己理解的命令模式,尽量生动有趣,本文将使用WPF为例子:

场景:

本来有两台手机,两个充电器
用的好好的,但是有一天,换Iphone15了
1fb5351b567b498eb72f3285be304af3
ca2544515e9149fba3f969f309689cb7

虽然说TypeC充电器都能用,但一个充电器
冲两台手机好像不够用,Lighting口是否还能用

聪明的你,一定想到了这玩意:
1d3b1a08556c4593adb1550c9e06d05d
于是乎:
cc8f13fef3dd4b3399b30e89b6cf1498

ee02ddb82aa2455ea3b3b90cda31e4e7

41914eb0dfb84cd6b4d268a87f564334

这样,老旧的闪电口又能继续工作啦!

看下例子中的六大原则:

单一职责原则(Single Responsibility Principle):每个类 都只负责实现自己的接口,没有违反单一职责原则。

开放封闭原则(Open-Closed Principle):通过适配器模式,可以在不修改现有代码的情况下添加新的功能。

里氏替换原则(Liskov Substitution Principle):LightingAdapter可以替换Lighting,而不会影响LightningIsWorking方法的正确性。

接口隔离原则(Interface Segregation Principle):ILightning和ITypeC接口都只定义了一个方法,没有违反接口隔离原则。(但是,当适配器业务复杂起来的时候,这个原则容易被打破)

依赖倒置原则(Dependency Inversion Principle):Button_Click方法依赖于抽象接口ILightning和ITypeC,而不依赖于具体的实现类。

迪米特法则(Law of Demeter):Button_Click方法只与接口ILightning和ITypeC进行交互,而不知道具体的实现类。

当然,缺点也很明显,当需要多个适配器或者接口变多的时候,复杂度就上来了
a3aab788330143a9bf04ba5249aa469e

所以这个模式要慎用

最后,没有什么设计模式是最好的,只有最好的使用方法

posted @ 2026-08-10 11:40  Poetindusk  阅读(1)  评论(0)    收藏  举报