Fabryka abstrakcyjna/Wzorce projektowe/Pomoc w kodzie

0

Witam
Mam problem z kodem odnośnie fabryki abstrakcyjnej a mianowicie nie wyświetla to co trzeba
Myślałam nad tym trochę i szukałam przykładów po forach ale nic nie pomaga
Dlatego zwracam się o pomoc tutaj

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

3

Po powinieneś zrobić

Console.WriteLine(alfabet_lacinka.letters.ShowAlfa());

lub override na ToString dla każdej implementacji interfacu

1 użytkowników online, w tym zalogowanych: 0, gości: 1