Beispiel #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.WriteLine("--------------------BridgePattern--------------------");
            Console.WriteLine();

            //平台和数据库版本是两个完全不同的维度,平台维度作为数据库的一个成员

            #region 原始写法,每个平台都要写
            //SqlServer2008,Unix平台
            PlatformImplementor unixPlatform2008  = new SqlServer2008UnixImplementor();
            Database            sqlServer2008Unix = new SqlServer2008(unixPlatform2008);
            sqlServer2008Unix.Create();

            //SqlServer2017,Unix平台
            PlatformImplementor unixPlatform2017  = new SqlServer2017UnixImplementor();
            Database            sqlServer2017Unix = new SqlServer2017(unixPlatform2017);
            sqlServer2017Unix.Create();

            //SqlServer2008,Windows平台
            PlatformImplementor windowsPlatform2008  = new SqlServer2008WindowsImplementor();
            Database            sqlServer2008Windows = new SqlServer2008(windowsPlatform2008);
            sqlServer2008Windows.Create();

            //SqlServer2017,Windows平台
            PlatformImplementor windowsPlatform2017  = new SqlServer2017WindowsImplementor();
            Database            sqlServer2017Windows = new SqlServer2017(unixPlatform2017);
            sqlServer2017Windows.Create();

            #endregion


            Console.WriteLine("-----------------------------------------------------");
            #region 数据库版本和平台完全分离的写法
            //unxi平台
            PlatformImplementor unix = new UnixImplementor();
            //Windows平台
            PlatformImplementor windows = new WindowsImplementor();

            //SqlServer2008,Unix平台
            Database sqlServer2008UnixPlatform = new SqlServer2008(unix);
            sqlServer2008UnixPlatform.Create();

            //Sqlserver2017,Unix平台
            Database sqlServer2017UnixPlatform = new SqlServer2017(unix);
            sqlServer2017UnixPlatform.Create();

            //SqlServer2008,Windows平台
            Database sqlServer2008WindowsPlatform = new SqlServer2008(windows);
            sqlServer2008WindowsPlatform.Create();

            //SqlServer2017,Windows平台
            Database sqlServer2017WindowsPlatform = new SqlServer2017(windows);
            sqlServer2017WindowsPlatform.Create();
            Console.WriteLine("-----------------------------------------------------");

            #endregion


            Console.ReadLine();
        }