Facebook
From Bistre Marten, 11 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 91
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. public interface IKompozyt
  5. {
  6.     string Nazwa { get; set; }
  7.  
  8.     //
  9.     //
  10.     void DodajElement(IKompozyt element);
  11.     void UsunElement(IKompozyt element);
  12.     void Renderuj();
  13. }
  14.  
  15.  
  16.  
  17. public class Lisc : IKompozyt
  18. {
  19.  
  20.     public string Nazwa { get; set; }
  21.  
  22.     public void Renderuj()
  23.     {
  24.         Console.WriteLine(Nazwa + " renderowanie...");
  25.     }
  26.     public void DodajElement(IKompozyt element)
  27.     {
  28.         throw new NotImplementedException();
  29.     }
  30.  
  31.  
  32.     public void UsunElement(IKompozyt element)
  33.     {
  34.         throw new NotImplementedException();
  35.     }
  36.  
  37.     //
  38.     //
  39.  
  40. }
  41.  
  42.  
  43. public class Wezel : IKompozyt
  44. {
  45.  
  46.     private List<IKompozyt> Lista = new List<IKompozyt>();
  47.  
  48.     public string Nazwa { get; set; }
  49.  
  50.  
  51.     public void Renderuj()
  52.     {
  53.         Console.WriteLine(Nazwa + " rozpoczęcie renderowania");//rozpoczęcie renderowania
  54.  
  55.         foreach (var item in Lista)
  56.         {
  57.             item.Renderuj();
  58.         }//foreach item.Renderuj();
  59.  
  60.         Console.WriteLine(Nazwa + " zakończenie renderowania");//zakończenie renderowania
  61.     }
  62.     public void DodajElement(IKompozyt element)
  63.     {
  64.         Lista.Add(element);
  65.     }
  66.  
  67.     public void UsunElement(IKompozyt element)
  68.     {
  69.         Lista.Remove(element);
  70.     }
  71.  
  72.     //
  73.     //
  74.  
  75. }
  76.  
  77.  
  78. class MainClass
  79. {
  80.     public static void Main(string[] args)
  81.     {
  82.  
  83.         //
  84.         //
  85.         IKompozyt korzen = new Wezel();
  86.         korzen.Nazwa = "Korzeń";
  87.         //korzen.Renderuj();
  88.  
  89.  
  90.         Lisc lisc11 = new Lisc();
  91.         lisc11.Nazwa = "Liść 1.1";
  92.         korzen.DodajElement(lisc11);
  93.  
  94.         IKompozyt wezel2 = new Wezel();
  95.         wezel2.Nazwa = "Węzeł 2";
  96.         korzen.DodajElement(wezel2);
  97.  
  98.         Lisc lisc21 = new Lisc();
  99.         lisc21.Nazwa = "Liść 2.1";
  100.         Lisc lisc22 = new Lisc();
  101.         lisc22.Nazwa = "Liść 2.2";
  102.         Lisc lisc23 = new Lisc();
  103.         lisc23.Nazwa = "Liść 2.3";
  104.         wezel2.DodajElement(lisc21);
  105.         wezel2.DodajElement(lisc22);
  106.         wezel2.DodajElement(lisc23);
  107.  
  108.         IKompozyt wezel3 = new Wezel();
  109.         wezel3.Nazwa = "Węzeł 3";
  110.         korzen.DodajElement(wezel3);
  111.  
  112.  
  113.         Lisc lisc31 = new Lisc();
  114.         lisc31.Nazwa = "Liść 3.1";
  115.         Lisc lisc32 = new Lisc();
  116.         lisc32.Nazwa = "Liść 3.2";
  117.         wezel3.DodajElement(lisc31);
  118.         wezel3.DodajElement(lisc32);
  119.  
  120.         IKompozyt wezel33 = new Wezel();
  121.         wezel33.Nazwa = "Węzeł 3.3";
  122.         wezel3.DodajElement(wezel33);
  123.         Lisc lisc331 = new Lisc();
  124.         lisc331.Nazwa = "Liść 3.3.1";
  125.         wezel33.DodajElement(lisc331);
  126.  
  127.  
  128.  
  129.         korzen.Renderuj();
  130.  
  131.  
  132.     }
  133. }