zoukankan      html  css  js  c++  java
  • 桥接模式

    桥接模式:将抽象与实现分离,实现面向接口编程。

    场景:面向接口编程,例如,三层架构中的DAL与BLL的引用可以使用桥接模式实现,修改DAL时,BLL中的逻辑不需要改变

    UML图:

    示例代码:

        public interface IBaseDAL
        {
            void Insert();
        }
        public class UserDAL:IBaseDAL
        {
            public void Insert()
            {
                Console.WriteLine("插入User");
            }
        }
        public class MenuDAL:IBaseDAL
        {
            public void Insert()
            {
                Console.WriteLine("插入Menu");
            }
        }
        public interface IBaseBLL
        {
            IBaseDAL baseDal { get; set; }
            void SetCurrentDal(IBaseDAL BaseDal);
            void InsertOne();
        }
      public class UserBLL : IBaseBLL
        {
            public UserBLL(IBaseDAL BaseDal)
            {
                SetCurrentDal(BaseDal);
            }
    
            public IBaseDAL baseDal { get; set; }
            public void SetCurrentDal(IBaseDAL BaseDal)
            {
                this.baseDal = BaseDal;
            }
    
            public void InsertOne()
            {
                baseDal.Insert();
            }
        }
        public class MenuBLL:IBaseBLL
        {
            public MenuBLL(IBaseDAL BaseDal)
            {
                this.baseDal = BaseDal;
            }
    
            public IBaseDAL baseDal { get; set; }
            public void SetCurrentDal(IBaseDAL BaseDal)
            {
                this.baseDal = BaseDal;
            }
    
            public void InsertOne()
            {
                this.baseDal.Insert();
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                IBaseBLL user = new UserBLL(new UserDAL());
                user.InsertOne();
    
                IBaseBLL menu = new MenuBLL(new MenuDAL());
                menu.InsertOne();
            }
        }
  • 相关阅读:
    win10 增加一个新磁盘
    解释mysql 语句
    Impala 中invalidate metadata和refresh
    PPT 设置幻灯片母版
    python 中startswith()和endswith() 方法
    python 把函数的值赋给变量
    python 获取导入模块的文件路径
    MD5 算法
    python 删除特定字符所在行
    JS判断内容为空方法总结
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9116143.html
Copyright © 2011-2022 走看看