Разверните приложение JRuby Sinatra SQLite на Tomcat

Вы можете просто сделать Node общедоступным и сохранить внутренние производные классы. Не имея отношения к этому, вы должны думать о том, чтобы не выводить Node во вложенные классы для лучшей ремонтопригодности:

public abstract class Node {
}

internal class ANode : Node {
    public byte[] internalValue;
}

internal class BNode : Node {
    public int internalValue;
}

Если вы хотите иметь возможность создавать экземпляры ANode и BNode из внешних сборок , вы можете использовать абстрактный завод:

public static class NodeFactory {
    public Node CreateNode(byte[] value) {
        return new ANode { internalValue = value };
    }

    public Node CreateNode(int value) {
        return new BNode { internalValue = value };
    }
}
0
задан rcrews 19 January 2019 в 17:12
поделиться