Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.55 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace wejsciowka4
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. //tuning samochodu i jego dekoracja
  14. Pojazd samochodzik = new SamochodPassat();
  15. samochodzik = new Spojler(samochodzik);
  16. samochodzik = new TubaBasowa(samochodzik);
  17. Console.WriteLine(samochodzik.Opis() + " posiada: " + samochodzik.PktPrestizu()+" pkt prestiżu");
  18. Pojazd samochodzik2 = new SamochodBMW();
  19. samochodzik2 = new TubaBasowa(samochodzik2);
  20. samochodzik2 = new GłośnyWydech(samochodzik2);
  21. Console.WriteLine(samochodzik2.Opis() + " posiada: " + samochodzik2.PktPrestizu() + " pkt prestiżu");
  22. Pojazd samochodzik3 = new SamochodMustang();
  23. samochodzik3 = new Nitro(samochodzik3);
  24. samochodzik3 = new Turbo(samochodzik3);
  25. samochodzik3 = new Spojler(samochodzik3);
  26. samochodzik3 = new Naklejki(samochodzik3);
  27. Console.WriteLine(samochodzik3.Opis() + " posiada: " + samochodzik3.PktPrestizu() + " pkt prestiżu");
  28. }
  29. }
  30. abstract class Pojazd
  31. {
  32. public abstract string Opis();
  33. public abstract int PktPrestizu();
  34. }
  35. abstract class PojazdDekorator:Pojazd
  36. {
  37. protected Pojazd pojazd;
  38.  
  39. protected PojazdDekorator(Pojazd _pojazd)
  40. {
  41. pojazd = _pojazd;
  42. }
  43. public override string ToString()
  44. {
  45. return pojazd.ToString();
  46. }
  47. public override int PktPrestizu()
  48. {
  49. return pojazd.PktPrestizu();
  50. }
  51. }
  52. class SamochodPassat : Pojazd
  53. {
  54. public override string Opis()
  55. {
  56. return "Samochod VW Passat z ";
  57. }
  58.  
  59. public override int PktPrestizu()
  60. {
  61. return 500;
  62. }
  63. }
  64. class SamochodBMW : Pojazd
  65. {
  66. public override string Opis()
  67. {
  68. return "Samochod BMW ";
  69. }
  70.  
  71. public override int PktPrestizu()
  72. {
  73. return 400;
  74. }
  75. }
  76. class SamochodMustang : Pojazd
  77. {
  78. public override string Opis()
  79. {
  80. return "Samochod Ford Mustang ";
  81. }
  82.  
  83. public override int PktPrestizu()
  84. {
  85. return 450;
  86. }
  87. }
  88. class Spojler : PojazdDekorator
  89. {
  90. public Spojler(Pojazd _pojazd) : base(_pojazd)
  91. {
  92. }
  93.  
  94. public override string Opis()
  95. {
  96. return pojazd.Opis() + ",spojler ";
  97. }
  98. public override int PktPrestizu()
  99. {
  100. return pojazd.PktPrestizu() + 100;
  101. }
  102. }
  103. class Nitro : PojazdDekorator
  104. {
  105. public Nitro(Pojazd _pojazd) : base(_pojazd)
  106. {
  107. }
  108.  
  109. public override string Opis()
  110. {
  111. return pojazd.Opis() + ",nitro ";
  112. }
  113. public override int PktPrestizu()
  114. {
  115. return pojazd.PktPrestizu() + 50;
  116. }
  117. }
  118. class TubaBasowa : PojazdDekorator
  119. {
  120. public TubaBasowa(Pojazd _pojazd) : base(_pojazd)
  121. {
  122. }
  123.  
  124. public override string Opis()
  125. {
  126. return pojazd.Opis() + ",tuba basowa ";
  127. }
  128. public override int PktPrestizu()
  129. {
  130. return pojazd.PktPrestizu() + 200;
  131. }
  132. }
  133. class Naklejki : PojazdDekorator
  134. {
  135. public Naklejki(Pojazd _pojazd) : base(_pojazd)
  136. {
  137. }
  138.  
  139. public override string Opis()
  140. {
  141. return pojazd.Opis() + ",naklejki ";
  142. }
  143. public override int PktPrestizu()
  144. {
  145. return pojazd.PktPrestizu() + 20;
  146. }
  147. }
  148. class Turbo : PojazdDekorator
  149. {
  150. public Turbo(Pojazd _pojazd) : base(_pojazd)
  151. {
  152. }
  153.  
  154. public override string Opis()
  155. {
  156. return pojazd.Opis() + ",turbo ";
  157. }
  158. public override int PktPrestizu()
  159. {
  160. return pojazd.PktPrestizu() + 60;
  161. }
  162. }
  163. class GłośnyWydech : PojazdDekorator
  164. {
  165. public GłośnyWydech(Pojazd _pojazd) : base(_pojazd)
  166. {
  167. }
  168. public override string Opis()
  169. {
  170. return pojazd.Opis() + ", głośny wydech ";
  171. }
  172. public override int PktPrestizu()
  173. {
  174. return pojazd.PktPrestizu() - 50;
  175. }
  176. }
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement