惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
爱范儿
爱范儿
罗磊的独立博客
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
Netflix TechBlog - Medium
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
U
Unit 42
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
H
Help Net Security
博客园_首页
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理

会走路的三百块

会走路的三百块 会走路的三百块 其他 | 会走路的三百块 会走路的三百块 Unity-业务框架 | 会走路的三百块 其他 | 会走路的三百块 part 4 踩坑记录 | 会走路的三百块 Unity-进阶知识 | 会走路的三百块 Unity-天命6源码 | 会走路的三百块 CICD | 会走路的三百块 part 1 linux的历史节点 | 会走路的三百块 C的编译器 | 会走路的三百块 字符串常量存储 | 会走路的三百块 第三章 数据和C | 会走路的三百块 类型转换和缩减 | 会走路的三百块 零散知识点 | 会走路的三百块 DNS选择机制 | 会走路的三百块 网络八股Cache | 会走路的三百块 第三章-数据和C | 会走路的三百块 一些零散的知识点 | 会走路的三百块 自顶向下 | 会走路的三百块 linux简单速通 | 会走路的三百块 设计图的概述 | 会走路的三百块 AI和自动化暂存 | 会走路的三百块 第一章 初识C语言 | 会走路的三百块 Games101 | 会走路的三百块 Unity-Lua补充 | 会走路的三百块 Unity-个人Demo | 会走路的三百块 Unity-基础知识 | 会走路的三百块 Unity环境搭建 | 会走路的三百块
EP3-结构型模式 | 会走路的三百块
2026-05-25 · via 会走路的三百块

创建于 2024年5月7日 04:52:54 · 约299字

适配器模式 ​

适配器设计模式(封装器模式) 其实就是封装统一调用,但是每次添加新的类型需要修改原先的适配器代码,但是只添加不修改。
如果这些类只是具有一些共同方法但是并不是完成同一功能的,那代码可能变的难以维护
适配器会让代码复杂度增加

Click to see more

Csharp

namespace DesignPatterns;  
  
//适配器模式,就是把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能在一起工作  
  
public enum ClientType  
{  
    C1,  
    C2  
}  
  
  
public class Client1  
{  
    public void Request1()  
    {        
        Console.WriteLine("Client 1 启动!");  
    }
}  
  
public class Client2  
{  
    public void Request2()  
    {        
        Console.WriteLine("Client 2 启动!");  
    }
}  
  
  
public class Adaptor  
{  
    private Client1 c1 = new Client1();  
    private Client2 c2 = new Client2();  
  
    public void Request(ClientType CT)  
    {        
        switch (CT)  
        {            
            case (ClientType.C1):  
                c1.Request1();  
                break;  
            case (ClientType.C2):  
                c2.Request2();  
                break;  
            default:  
                throw new Exception("Unkonwn Type");  
        }    
    }
}

//-------Main中-----

class Program  
{  
    static void Main(string[] args)  
    {        
        Console.WriteLine("-----------------适配器模式-----------------");  
        Adaptor ad = new Adaptor();  
        ad.Request(ClientType.C1);  
        ad.Request(ClientType.C2);
    }
}

运行结果

-----------------适配器模式-----------------
Client 1 启动!
Client 2 启动!

桥接模式 ​

组合模式 ​

装饰模式 ​

外观模式 ​

享元模式 ​

代理模式 ​