【C#】Structural Patterns Bridge Mode

The Bridge design pattern decouples an abstraction from its implementation so that the two can vary independently.


简单来说~ 就是要将抽象跟实作分离~ 这样他们就可以独立变化~

换句话说~ 桥梁能将抽象概念跟实作方法给松散耦合~ 这样就教不会互相影响


学习目标: 桥梁模式的概念及实务

学习难度: ☆☆☆


using System;

namespace ConsoleApp1
{
    //概念定义

    public class Programmer
    {
        public string name { get; set; }

        protected Working working;

        public Working Working
        {
            set { working = value; }
        }

        public virtual void Unity()
        {
            working.Unity();
        }
        public virtual void MongoDB()
        {
            working.MongoDB();
        }
    }

    //精炼概念

    public class GameProgrammer : Programmer
    {
        public override void Unity()
        {
            working.Unity();
        }
    }

    //精炼概念
    public class DataBaseProgrammer : Programmer
    {
        public override void MongoDB()
        {
            working.MongoDB();
        }
    }

    //实作抽象类
    public abstract class Working
    {
        public virtual void Unity()
        {

        }

        public virtual void MongoDB()
        {

        }
    }

    //实作类1
    public class CreateGame : Working
    {
        public override void Unity()
        {
            Console.WriteLine("Making Game");
        }
    }

    //实作类2
    public class ControDB : Working
    {
        public override void MongoDB()
        {
            Console.WriteLine("Control DataBase");
        }
    }


    public class MainProgram
    {
        public static void Main(string[] args)
        {
            //Game工程师

            Programmer gameprogrammer = new GameProgrammer();

            gameprogrammer.Working = new CreateGame();

            gameprogrammer.Unity();

            //DB工程师

            Programmer DBprogrammer = new DataBaseProgrammer();

            DBprogrammer.Working = new ControDB();

            DBprogrammer.MongoDB();
        }
    }
}

参考资料:

https://www.dofactory.com/net/bridge-design-pattern


<<:  【C#】Behavioral Patterns Visitor Mode

>>:  【基础影像应用篇】DAY3.物件辨识模型建立流程

t test vs ANOVA

今天刚好在查询各种检定运用的情境,就稍微在这里整理一下: t test: 主要是用在比较两组之间“平...

Day5 参加职训(机器学习与资料分析工程师培训班),Python程序设计

上午: Python程序设计 初步介绍Python,此次课程设计为完全没学过该语言的情况,因此老师从...

JavaScript Day17 - 阵列操作(map)

map map() 会建立一个新的阵列,其内容为原阵列的每一个元素经由回呼函式运算後所回传的结果之集...

Day 02 Introduction to AI

What is AI? Machine learning - foundation for AI s...

[Day 30] 保护资讯资产

CISA书最後一章为资讯资产安全控制及安全事件管理,与CISSP内容大致重叠,差别在需以稽核角度查看...