Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum ALFABETY {
- Lacinka ,
- Greka,
- Cyrylica
- }
- abstract class Fabryka
- {
- public abstract Alfabet stworzAlfabet();
- public static Fabryka wybierzFabryke(ALFABETY wybor)
- {
- switch (wybor)
- {
- case ALFABETY.Lacinka:
- return new LacinkaFabryka();
- case ALFABETY.Greka:
- return new GrekaFabryka();
- case ALFABETY.Cyrylica:
- return new CyrylicaFabryka();
- default:
- throw new NotImplementedException();
- }
- }
- }
- class CyrylicaFabryka : Fabryka
- {
- public override Alfabet stworzAlfabet()
- {
- return new AlfabetRosyjski();
- }
- }
- class GrekaFabryka : Fabryka
- {
- public override Alfabet stworzAlfabet()
- {
- return new AlfabetGrecki();
- }
- }
- class LacinkaFabryka : Fabryka
- {
- public override Alfabet stworzAlfabet()
- {
- return new AlfabetLacinski();
- }
- }
- abstract class Alfabet
- {
- public abstract void wyswietl();
- public abstract string zwroc();
- }
- class AlfabetLacinski : Alfabet
- {
- public override void wyswietl()
- {
- Console.WriteLine("abcde");
- }
- public override string zwroc()
- {
- return "abcde";
- }
- }
- class AlfabetRosyjski : Alfabet
- {
- public override void wyswietl()
- {
- Console.WriteLine("абвгд");
- }
- public override string zwroc()
- {
- return "абвгд";
- }
- }
- class AlfabetGrecki : Alfabet
- {
- public override void wyswietl()
- {
- Console.WriteLine("αβγδε");
- }
- public override string zwroc()
- {
- return "αβγδε";
- }
- }
- public class Application
- {
- public static void Main(String[] args)
- {
- Console.OutputEncoding = Encoding.UTF8;
- Fabryka fabryka = Fabryka.wybierzFabryke(ALFABETY.Lacinka);
- Alfabet alfabet = fabryka.stworzAlfabet();
- alfabet.wyswietl();
- Fabryka fabryka1 = Fabryka.wybierzFabryke(ALFABETY.Greka);
- Alfabet alfabet1 = fabryka1.stworzAlfabet();
- alfabet1.wyswietl();
- Fabryka fabryka2 = Fabryka.wybierzFabryke(ALFABETY.Cyrylica);
- Alfabet alfabet2 = fabryka2.stworzAlfabet();
- alfabet2.wyswietl();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement