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

推荐订阅源

A
About on SuperTechFans
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
宝玉的分享
宝玉的分享
美团技术团队
量子位
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
IT之家
IT之家
爱范儿
爱范儿
J
Java Code Geeks
博客园 - Franky
Last Week in AI
Last Week in AI
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
GbyAI
GbyAI
Recent Announcements
Recent Announcements
小众软件
小众软件
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog

会走路的三百块

会走路的三百块 会走路的三百块 其他 | 会走路的三百块 会走路的三百块 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 启动!

桥接模式 ​

组合模式 ​

装饰模式 ​

外观模式 ​

享元模式 ​

代理模式 ​