Witam
Mam problem z kodem odnośnie fabryki abstrakcyjnej który miałam dokończyć co też zrobiłam ale niestety nie wyświetla tego co trzeba
using System;
using System.Text;
using System.Collections.Generic;
interface ILitery
{
public string ShowAlfa();
}
interface ICyfry
{
public string ShowNum();
}
//
//
//
class AlfabetFactory
{
private SystemFactory systemFactory;
public ILitery letters;
public ICyfry numbers;
//
public AlfabetFactory(SystemFactory systemFactory)
{
this.systemFactory = systemFactory;
}
public void Generate()
{
this.numbers = this.systemFactory.CreateNum();
this.letters = this.systemFactory.CreateAlfa();
}
}
abstract class SystemFactory
{
public abstract ILitery CreateAlfa();
public abstract ICyfry CreateNum();
}
class LacinkaFactory : SystemFactory
{
public override ILitery CreateAlfa()
{
return new LacinkaLetters();
}
public override ICyfry CreateNum()
{
return new LacinkaNumbers();
}
}
class CyrylicaFactory : SystemFactory
{
public override ILitery CreateAlfa()
{
return new CyrylicaLetters();
}
public override ICyfry CreateNum()
{
return new CyrylicaNumbers();
}
}
class GrekaFactory : SystemFactory
{
public override ILitery CreateAlfa()
{
return new GrekaLetters();
}
public override ICyfry CreateNum()
{
return new GrekaNumbers();
}
}
class LacinkaNumbers : ICyfry
{
string numbers;
public LacinkaNumbers()
{
numbers = "I II III";
}
public string ShowNum()
{
return numbers;
}
}
class CyrylicaNumbers : ICyfry
{
string numbers;
public CyrylicaNumbers()
{
numbers = "1 2 3";
}
public string ShowNum()
{
return numbers;
}
}
class GrekaNumbers : ICyfry
{
string numbers;
public GrekaNumbers()
{
numbers = "αʹ βʹ γʹ";
}
public string ShowNum()
{
return numbers;
}
}
class LacinkaLetters : ILitery
{
string letters;
public LacinkaLetters()
{
letters = "abcde";
}
public string ShowAlfa()
{
return letters;
}
}
class CyrylicaLetters : ILitery
{
string letters;
public CyrylicaLetters()
{
letters = "абвгд";
}
public string ShowAlfa()
{
return letters;
}
}
class GrekaLetters : ILitery
{
string letters;
public GrekaLetters()
{
letters = "αβγδε";
}
public string ShowAlfa()
{
return letters;
}
}
public class Application
{
public static void Main(String[] args)
{
Console.OutputEncoding = Encoding.UTF8;
AlfabetFactory alfabet_lacinka = new AlfabetFactory(new LacinkaFactory());
alfabet_lacinka.Generate();
Console.WriteLine(alfabet_lacinka.letters);
Console.WriteLine(alfabet_lacinka.numbers);
AlfabetFactory alfabet_cyrylica = new AlfabetFactory(new CyrylicaFactory());
alfabet_cyrylica.Generate();
Console.WriteLine(alfabet_cyrylica.letters);
Console.WriteLine(alfabet_cyrylica.numbers);
AlfabetFactory alfabet_greka = new AlfabetFactory(new GrekaFactory());
alfabet_greka.Generate();
Console.WriteLine(alfabet_greka.letters);
Console.WriteLine(alfabet_greka.numbers);
//
//
//
/
//
}
}
Kod wyświetla:
LacinkaLetters
LacinkaNumbers
CyrylicaLetters
CyrylicaNumbers
GrekaLetters
GrekaNumbers
A powinien:
abcde I II III
абвгд 1 2 3
αβγδε αʹ βʹ γʹ
Byłabym wdzięczna za pomoc