桥接模式

Posted chester.chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了桥接模式相关的知识,希望对你有一定的参考价值。

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

场景:面向接口编程,例如,三层架构中的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();
        }
    }

 

以上是关于桥接模式的主要内容,如果未能解决你的问题,请参考以下文章

桥接模式 C++ 代码编译错误

案例分析:设计模式与代码的结构特性

桥接模式-代码实现

23种设计模式之桥接模式代码实例

设计模式之桥接模式

桥接模式