Új hozzászólás Aktív témák

  • modder

    aktív tag

    válasz RexpecT #4377 üzenetére

    Igen, itt a kérdés, hogy A osztályt ki példányosítja. Ha B, vagy már egyébként létre van hozva, és B ismeri, akkor:

    public interface A {
    public void processObject(Object o);
    }

    public interface C {
    /**
    * processXml(String xml, A a) feldolgozza az xml-t, és az eredményt átadja
    * a-nak A#processObject(Object o)-n keresztül
    */
    public void processXml(String xml, A a);
    }

    class B {
    A a;
    public void newXml( String xml ) {
    new C().processXml(xml,a);
    }
    }

    public class CImpl {
    public void processXml(String xml, A a) {
    Object o = parseXml(xml);
    a.processObject(o);
    }
    }

    Ha C-ben még szükséged van A-ra, akkor a C konstruktorában is átadhatod, de ez így tisztább, jobban látni a függőséget. Az eredeti kérdés interfészekre vonatkozott. Azt nem tudod meghatározni interfészekkel, hogy a C#processXml() implementációja mi legyen, ezért JavaDoc-ban szokták definiálni, hogy miylen további felelőssége van egy metódusnak.

Új hozzászólás Aktív témák