zoukankan      html  css  js  c++  java
  • Design Pattern

        class BridgePattern
        {
            public static void Main()
            {
                IReport reportMonthly = new MonthlyReport();
                IReport reportYearly = new YearlyReport();
    
                ReportChart reportChart = new ColumnReportChart();
    
                reportChart.SetReport(reportMonthly);
                reportChart.Display();
    
                reportChart.SetReport(reportYearly);
                reportChart.Display();
            }
        }
    
        abstract class ReportChart
        {
            protected IReport report;
    
            public void SetReport(IReport rpt)
            {
                report = rpt;
            }
    
            public abstract void Display();
        }
    
        class ColumnReportChart : ReportChart
        {
            public override void Display()
            {
                Console.WriteLine("------------{0} by 'Column Chart!!'-------------", report.ReportName);
                foreach (var item in report.GetReportData())
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine();
            }
        }
    
        class PieReportChart : ReportChart
        {
            public override void Display()
            {
                Console.WriteLine("------------{0} by 'Pie Chart!!'-------------", report.ReportName);
                foreach (var item in report.GetReportData())
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine();
            }
        }
    
        interface IReport
        {
            string ReportName { get; }
            List<string> GetReportData();
        }
    
        class YearlyReport : IReport
        {
            public List<string> GetReportData()
            {
                var data = new List<string> 
                {
                  "2010,370",
                  "2011,420",
                  "2012,320",
                  "2013,490",
                };
                return data;
            }
    
            public string ReportName
            {
                get { return "Yearly Report"; }
            }
        }
    
        class MonthlyReport : IReport
        {
            public List<string> GetReportData()
            {
                var data = new List<string> 
                {
                  "Jan,370",
                  "Feb,420",
                  "Mar,320",
                  "Apr,490"
                };
                return data;
            }
    
            public string ReportName
            {
                get { return "Monthly Report"; }
            }
        }
  • 相关阅读:
    假期第六周总结
    假期第五周周总结
    navicat 链接oracle时出现的各种问题
    oracle 12如何解锁账户锁定状态及修改忘记的密码
    假期第四周周总结
    假期第三周周总结
    idea中使用git【推送,拉取,分支合并,解决冲突】
    Git分支,合并,切换分支的使用
    Git使用
    SpringCloud服务降级案列
  • 原文地址:https://www.cnblogs.com/cnbwang/p/3660457.html
Copyright © 2011-2022 走看看