zoukankan      html  css  js  c++  java
  • 适配者模式

    适配者模式:在调用的接口已经确定,提供的接口也已经确定,但有写地方不匹配,就需要适配者模式来处理匹配,一般用在后期代码维护

    主方法

    namespace 适配模式
    {
        class Program
        {
            static void Main(string[] args)
            {
                ISqlHelper s1 = new Sql();
                s1.Add();
                s1.Delete();
                s1.Update();
                s1.Search();
    
                ISqlHelper s2 = new AdapterLucene();
                s2.Add();
                s2.Delete();
                s2.Update();
                s2.Search();
    
                Console.ReadKey();
            }
        }
    }

    ISqlHelper接口

    public interface ISqlHelper
        {
            void Add();
            void Delete();
            void Update();
            void Search();
        }

    sql类

        public class Sql:ISqlHelper
        {
            public void Add()
            {
                Console.WriteLine("sql增加");
            }
    
            public void Delete()
            {
                Console.WriteLine("sql删除");
            }
    
            public void Update()
            {
                Console.WriteLine("sql修改");
            }
    
            public void Search()
            {
                Console.WriteLine("sql查询");
            }
        }

    Lucene类

        /// <summary>
        /// 全表索引插件,没有更新方法
        /// </summary>
        public class Lucene
        {
            public void Add()
            {
                Console.WriteLine("Lucene增加");
            }
    
            public void Delete()
            {
                Console.WriteLine("Lucene删除");
            }
    
            public void Search()
            {
                Console.WriteLine("Lucene查询");
            }
        }

    Lucene适配类

        /// <summary>
        /// 适配者模式:在调用的接口已经确定,提供的接口也已经确定,但有写地方不匹配
        /// 就需要适配者模式来处理匹配,一般用在后期代码维护
        /// </summary>
        public class AdapterLucene:Lucene,ISqlHelper
        {
            /// <summary>
            /// sql接口需要增删改查接口,但全表索引只有增、删、查接口,我就做一个适配类来处理不匹配
            /// </summary>
            public void Update()
            {
                base.Delete();
                base.Add();
            }
        }
  • 相关阅读:
    Python自动截图html页面
    filebeat+kafka+logstash+Elasticsearch+Kibana日志收集系统搭建
    k8s重要概念
    1721. 使括号有效的最少添加
    167. 链表求和
    272. 爬楼梯 II
    1609. 链表的中间结点
    SQL server查看触发器是否被禁用
    C#窗体内控件大小随窗体等比例变化
    微信接口返回码参考表
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/7073783.html
Copyright © 2011-2022 走看看