Documente Academic
Documente Profesional
Documente Cultură
RAPORT
A efectuat: st.gr.TI-181,
Erhan Serghei
Chișinău 2021
Sarcina lucrării:
Crearea unui program utilizând șabloanele de proiectare Composite și Decorator, care va gestiona
necesitățile unei companii mass-media.
Diagrama UML:
Codul Sursa:
namespace Modem
{
abstract class DeviceCategory
{
protected string name;
namespace Modem
{
abstract class Device : DeviceCategory
{
protected double DevicePrice;
public Device(string name, double cost) : base(name)
{
this.DevicePrice = cost;
}
namespace Modem
{
class WifiDevice : DeviceCategory
{
List<DeviceCategory> children = new List<DeviceCategory>();
namespace Modem
{
class Modem : Device
{
namespace Modem
{
abstract class Additionally : Device
{
protected Device Device;
public Additionally(string name, double price, Device device) : base(name, price)
{
this.Device = device;
}
namespace Modem
{
class Abonament : Additionally
{
public Abonament(string name, double price, Device device) : base(name, price, device)
{ }
public override double GetPrice()
{
var FinalPrice = Device.GetPrice() + 1;
return FinalPrice;
}
}
}
namespace Modem
{
class Program
{
static void Main(string[] args)
{
DeviceCategory category = new WifiDevice("Wifi device");
DeviceCategory Modems = new WifiDevice("Modem");
DeviceCategory ModemHuawei = new WifiDevice("Modemuri Huawei");
Device ModemAirbox = new Modem("Modem AirBox 4G Huawei E5576 – 322", 999);
ModemHuawei = new Abonament("Modem AirBox 4G Huawei E5576 – 322", 200, ModemAirbox);
WifiDevice.Add(Modems);
Modems.Add(ModemHuawei);
ModemHuawei.Add(ModemAirbox);
WifiDevice.Speed(0);
Console.WriteLine("\nModem AirBox 4G Huawei E5576 – 322: " + ModemAirbox.GetPrice());
Console.ReadLine();
}
}
}
Concluzie:
În urma elaborării acestei lucrări de laborator s-au studiat pattern-ul Composite și Decorator, cazurile
când trebuie de folosit aceste șabloane și s-a rezolvat o problemă din domeniul unei companii mass-media
folosind șabloanele enumerate. Pentru rezolvarea problemei cu adaptarea noilor produse conform tipurilor
de categorii s-a folosit șablonul Composite pentru a permite clienților să acceseze obiecte individuale și
grupuri de obiecte în același mod, iar pentru rezolvarea problemei cu setarea prețului ce include prețul
produsului și opțiunilor selectate de client s-a folosit Decorator pentru a adăuga la obiectul nostru produs
o comportare dinamică.