欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#組合模式實例詳解

 更新時間:2015年07月16日 11:48:01   作者:宋勇野  
這篇文章主要介紹了C#組合模式,實例分析了C#實現(xiàn)組合模式的原理與相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#組合模式。分享給大家供大家參考。具體如下:

Company.cs如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
  public abstract class Company
  {
    protected string name;
    public Company(string name) 
    {
      this.name = name;
    }
    public abstract void Add(Company c);
    public abstract void Remove(Company c);
    public abstract void Display(int depth);
    public abstract void LineOfDuty();
  }
}

ConcreteCompany.cs如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
  public class ConcreteCompany:Company
  {
    private List<Company> children = new List<Company>();
    public ConcreteCompany(string name) 
      :base(name)
    {}
    public override void Add(Company c)
    {
      children.Add(c);
    }
    public override void Remove(Company c)
    {
      children.Remove(c);
    }
    public override void Display(int depth)
    {
      Console.WriteLine(new String('-',depth)+name);
      foreach(Company component in children)
      {
        component.Display(depth+2);
      }
    }
    public override void LineOfDuty()
    {
      foreach(Company component in children)
      {
        component.LineOfDuty();
      }
    }
  }
}

FinanceDepartment.cs如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
  public class FinanceDepartment:Company
  {
    public FinanceDepartment(string name) : base(name) { }
    public override void Add(Company c)
    {
    }
    public override void Remove(Company c)
    {
      
    }
    public override void Display(int depth)
    {
      Console.WriteLine(new String('-',depth)+name);
    }
    public override void LineOfDuty()
    {
      Console.WriteLine("{0} 財務(wù)支付管理",name);
    }
  }
}

HRdepartment.cs如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
  public class HRdepartment:Company
  {
    public HRdepartment(string name)
      :base(name)
    { }
    public override void Add(Company c)
    {
    }
    public override void Remove(Company c)
    {
    }
    public override void Display(int depth)
    {
      Console.WriteLine(new String('-',depth)+name);
    }
    public override void LineOfDuty()
    {
      Console.WriteLine("{0} 招聘培訓(xùn)管理",name);
    }
  }
}

Program.cs如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      ConcreteCompany root = new ConcreteCompany("北京總共司");
      root.Add(new HRdepartment("人力部"));
      root.Add(new FinanceDepartment("財務(wù)部"));
      ConcreteCompany comp = new ConcreteCompany("上海分公司");
      comp.Add(new HRdepartment("分工司人力部"));
      comp.Add(new FinanceDepartment("分公司財務(wù)部"));
      root.Add(comp);
      ConcreteCompany comp1 = new ConcreteCompany("南京分部");
      comp1.Add(new HRdepartment("南京人力部"));
      comp1.Add(new FinanceDepartment("南京財務(wù)部"));
      comp.Add(comp1);
      ConcreteCompany comp2 = new ConcreteCompany("杭洲分部");
      comp2.Add(new HRdepartment("杭州人事部"));
      comp2.Add(new FinanceDepartment("杭州財務(wù)部"));
      comp.Add(comp2);
      root.Display(1);
      Console.ReadKey();
    }
  }
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#實現(xiàn)將RTF轉(zhuǎn)為HTML的示例代碼

    C#實現(xiàn)將RTF轉(zhuǎn)為HTML的示例代碼

    RTF文檔即富文本格式(Rich?Text?Format)的文檔。我們在處理文件時,遇到需要對文檔格式進行轉(zhuǎn)換時,可以將RTF轉(zhuǎn)為其他格式,如轉(zhuǎn)為DOCX/DOC、PDF或者HTML。本文將利用C#實現(xiàn)RTF轉(zhuǎn)HTML,需要的可以參考一下
    2022-04-04
  • C#實現(xiàn)添加多行文本水印到Word文檔

    C#實現(xiàn)添加多行文本水印到Word文檔

    一般情況下,在Word中添加文字水印僅支持添加一個文本字樣的水印,由于對不同文檔的設(shè)計要求,需要在Word文檔中添加平鋪水印效果。本文將介紹如何來實現(xiàn)該水印效果的方法,感興趣的可以了解一下
    2022-07-07
  • C#索引屬性用法實例分析

    C#索引屬性用法實例分析

    這篇文章主要介紹了C#索引屬性用法,實例分析了C#聲明索引屬性的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • c# 獲得本地ip地址的三種方法

    c# 獲得本地ip地址的三種方法

    這篇文章主要介紹了c# 獲得本地ip地址的三種方法,幫助大家更好的理解和實用c#,感興趣的朋友可以了解下
    2020-12-12
  • C# 如何調(diào)用C++ dll string類型返回

    C# 如何調(diào)用C++ dll string類型返回

    這篇文章主要介紹了C# 如何調(diào)用C++ dll string類型返回問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 基于C#生成隨機數(shù)示例

    基于C#生成隨機數(shù)示例

    這篇文章主要介紹了基于C#生成隨機數(shù)的類文件,可作為公共庫供其他文件調(diào)用,需要的朋友可以參考下
    2014-07-07
  • Unity3D實現(xiàn)模型淡入淡出效果

    Unity3D實現(xiàn)模型淡入淡出效果

    這篇文章主要為大家詳細介紹了Unity3D實現(xiàn)模型淡出效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • WinForm中的幾個實用技巧匯總

    WinForm中的幾個實用技巧匯總

    這篇文章主要介紹了WinForm中的幾個實用技巧,是進行C#程序設(shè)計中經(jīng)常用到的技巧,需要的朋友可以參考下
    2014-08-08
  • C# 將字節(jié)流轉(zhuǎn)換為圖片的實例方法

    C# 將字節(jié)流轉(zhuǎn)換為圖片的實例方法

    C# 將字節(jié)流轉(zhuǎn)換為圖片的實例方法,需要的朋友可以參考一下
    2013-03-03
  • c#讀寫注冊表示例分享

    c#讀寫注冊表示例分享

    這篇文章主要介紹了c#讀寫注冊表示例,示例中有詳細注釋,大家參考使用吧
    2014-01-01

最新評論