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();
            }
        }
  • 相关阅读:
    生鲜购物篮模型
    shell脚本
    一号店评论文本聚类研究1
    数据框的合并(根据某一个字段)
    Reshape包
    R-kmeans
    python练习(续)
    python练习
    截取整数字符串
    java中PriorityQueue优先队列使用方法
  • 原文地址:https://www.cnblogs.com/chenyishi/p/9116143.html
Copyright © 2011-2022 走看看