Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace wejsciowka4
- {
- class Program
- {
- static void Main(string[] args)
- {
- //tuning samochodu i jego dekoracja
- Pojazd samochodzik = new SamochodPassat();
- samochodzik = new Spojler(samochodzik);
- samochodzik = new TubaBasowa(samochodzik);
- Console.WriteLine(samochodzik.Opis() + " posiada: " + samochodzik.PktPrestizu()+" pkt prestiżu");
- Pojazd samochodzik2 = new SamochodBMW();
- samochodzik2 = new TubaBasowa(samochodzik2);
- samochodzik2 = new GłośnyWydech(samochodzik2);
- Console.WriteLine(samochodzik2.Opis() + " posiada: " + samochodzik2.PktPrestizu() + " pkt prestiżu");
- Pojazd samochodzik3 = new SamochodMustang();
- samochodzik3 = new Nitro(samochodzik3);
- samochodzik3 = new Turbo(samochodzik3);
- samochodzik3 = new Spojler(samochodzik3);
- samochodzik3 = new Naklejki(samochodzik3);
- Console.WriteLine(samochodzik3.Opis() + " posiada: " + samochodzik3.PktPrestizu() + " pkt prestiżu");
- }
- }
- abstract class Pojazd
- {
- public abstract string Opis();
- public abstract int PktPrestizu();
- }
- abstract class PojazdDekorator:Pojazd
- {
- protected Pojazd pojazd;
- protected PojazdDekorator(Pojazd _pojazd)
- {
- pojazd = _pojazd;
- }
- public override string ToString()
- {
- return pojazd.ToString();
- }
- public override int PktPrestizu()
- {
- return pojazd.PktPrestizu();
- }
- }
- class SamochodPassat : Pojazd
- {
- public override string Opis()
- {
- return "Samochod VW Passat z ";
- }
- public override int PktPrestizu()
- {
- return 500;
- }
- }
- class SamochodBMW : Pojazd
- {
- public override string Opis()
- {
- return "Samochod BMW ";
- }
- public override int PktPrestizu()
- {
- return 400;
- }
- }
- class SamochodMustang : Pojazd
- {
- public override string Opis()
- {
- return "Samochod Ford Mustang ";
- }
- public override int PktPrestizu()
- {
- return 450;
- }
- }
- class Spojler : PojazdDekorator
- {
- public Spojler(Pojazd _pojazd) : base(_pojazd)
- {
- }
- public override string Opis()
- {
- return pojazd.Opis() + ",spojler ";
- }
- public override int PktPrestizu()
- {
- return pojazd.PktPrestizu() + 100;
- }
- }
- class Nitro : PojazdDekorator
- {
- public Nitro(Pojazd _pojazd) : base(_pojazd)
- {
- }
- public override string Opis()
- {
- return pojazd.Opis() + ",nitro ";
- }
- public override int PktPrestizu()
- {
- return pojazd.PktPrestizu() + 50;
- }
- }
- class TubaBasowa : PojazdDekorator
- {
- public TubaBasowa(Pojazd _pojazd) : base(_pojazd)
- {
- }
- public override string Opis()
- {
- return pojazd.Opis() + ",tuba basowa ";
- }
- public override int PktPrestizu()
- {
- return pojazd.PktPrestizu() + 200;
- }
- }
- class Naklejki : PojazdDekorator
- {
- public Naklejki(Pojazd _pojazd) : base(_pojazd)
- {
- }
- public override string Opis()
- {
- return pojazd.Opis() + ",naklejki ";
- }
- public override int PktPrestizu()
- {
- return pojazd.PktPrestizu() + 20;
- }
- }
- class Turbo : PojazdDekorator
- {
- public Turbo(Pojazd _pojazd) : base(_pojazd)
- {
- }
- public override string Opis()
- {
- return pojazd.Opis() + ",turbo ";
- }
- public override int PktPrestizu()
- {
- return pojazd.PktPrestizu() + 60;
- }
- }
- class GłośnyWydech : PojazdDekorator
- {
- public GłośnyWydech(Pojazd _pojazd) : base(_pojazd)
- {
- }
- public override string Opis()
- {
- return pojazd.Opis() + ", głośny wydech ";
- }
- public override int PktPrestizu()
- {
- return pojazd.PktPrestizu() - 50;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement