IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: lze přidat za běhu do base třídy zděděnou třídu?

Aktivity
Avatar
Dog
Člen
Avatar
Dog:8.10.2016 13:12

Mám v programu:

class base //provadi roztrideni dat do parametru a mam tam parametr bool, ktery urcuje, jestli by se mely provest funkce ze zdedene tridy1 nebo 2

//zdedene tridy nemaji zadne dalsi parametry, pouze odlišné funkce se stejnymi jmeny, analyzuji dle pole o 1500 řadcich a 38 sloupcich
//dedeni jej zde dano kvuli tomu, ze obe tridy analyzuji obrovske mnozstv dat na zaklade odlisnych poli a je zbytecne volat tak pametove narocnou tridu
class zdedena1
class zdedena2

Tak se ptam, jestli to jde vyřešit nějak elegantněji, něž proměnnými se třídami, popř. sloucenim do jedne tridy

chtel bych aby se na zaklade boolu rozsirilo base tridu o zdedenou1 nebo zdedenou2.

 
Odpovědět
8.10.2016 13:12
Avatar
Odpovídá na Dog
sadlomaslox25:8.10.2016 14:09
public interface IProcessor
{
    byte[] Process(byte[] data);
}

public class Procesor1 : IProcessor
{
    public byte[] Process(byte[] data)
    {
        throw new NotImplementedException();
    }
}

public class Procesor2 : IProcessor
{
    public byte[] Process(byte[] data)
    {
        throw new NotImplementedException();
    }
}

public enum Strategy
{
    S1,S2
}

public class Evaluator
{
    private byte[] data;
    public void Evaluate(Strategy strategy)
    {
        IProcessor processor = null;
        switch (strategy)
        {
            case Strategy.S1:
                processor = new Procesor1();
                break;
            case Strategy.S2:
                processor = new Procesor2();
                break;
        }
        data = processor.Process(data);
    }
}
 
Nahoru Odpovědět
8.10.2016 14:09
Avatar
Dog
Člen
Avatar
Dog:9.10.2016 20:47

Nakonec jsem to musel vyřešit tak, že jsem obě třídy sloučil... Ale přesto bych byl rád, kdyby mi to někdo vysvětlil jak to funguje, protože se rád naučím něco nového...

 
Nahoru Odpovědět
9.10.2016 20:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.