桥接模式

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

场景:面向接口编程,例如,三层架构中的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();
        }
    }
原文地址:https://www.cnblogs.com/chenyishi/p/9116143.html