Ocena użytkownikóww: ***** / 11
Nadesłany przez Kamil Dworak, 22 grudnia 2010 12:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
flyweight.cs:
/****************************************
* Wzorzec Projektowy FlyWeight *
* (pylek) *
* www.algorytm.org *
* Kontakt *
* kamil.dworak.1988[malpka]gmail.com *
* Opracowal Dworak Kamil *
*****************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
interface Posilek {
String dawajNazwe();
}
class Pizza : Posilek {
public String dawajNazwe(){
return "Pizza";
}
}
abstract class Zmiana : Posilek {
protected Posilek posilek;
protected Zmiana(Posilek p){
this.posilek = p;
}
public abstract String dawajNazwe();
}
class Sos : Zmiana {
public Sos(Posilek posilek) : base(posilek){
}
public override String dawajNazwe(){
return posilek.dawajNazwe() + " + sos";
}
}
class Ser : Zmiana {
public Ser(Posilek posilek) : base(posilek){
}
public override String dawajNazwe(){
return posilek.dawajNazwe() + " + ser";
}
}
static void Main(string[] args)
{
Posilek posilek = new Pizza();
posilek = new Sos(posilek);
Console.WriteLine(posilek.dawajNazwe());
posilek = new Ser(posilek);
Console.WriteLine(posilek.dawajNazwe());
Console.ReadLine();
}
}
}