мне нужно иметь три бережливость класса: ThriftClassList, ThriftClass1, ThriftClass2. В зависимости от некоторых условий от запроса мне необходимо перейти на ThriftClassList объект класса ThriftClass1 или ThriftClass2.Apache Бережливость полиморфизм
Так что мне нужно иметь какое-то определение таких бережливость
struct ThriftClassList {
1: required list<?> data
}
Но бережливость не поддерживает такое определение, я могу сделать только
struct ThriftClass1List {
1: required list<ThriftClass1> data
}
struct ThriftClass2List {
1: required list<ThriftClass2> data
}
Но я не хочу иметь два четырех класса, ThriftClass1List и ThriftClass2List похожи, я хочу иметь какой-то подстановочный знак.
Выполняет два класса списка - единственный способ решить эту проблему?
Это смешение, и она нарушает единый принцип ответственности. –
Никто не заставляет вас делать это таким образом, если ваша система убеждений говорит иначе. Спасибо за downvote за правильный ответ, который вам просто не нравится из-за аргументов, которые на самом деле не применяются. – JensG
@Johannes Martinsson: Если кто-то еще (конечно, не OP) хочет список только с одним типом элемента, то 'list' будет достаточно. Не нужно ничего более сложного. Ввод двух списков во внутреннее упущение указывает на то, почему мы используем этот «союз» здесь в первую очередь. Наконец, обертывание этой конструкции в другое 'Outer' является бессмысленным - последнее больше не добавляет значения. Нижняя линия? Если вы считаете, что у вас есть лучший ответ, добавьте его ниже. Но перестаньте проверять ответы других людей на вопросы (verschlimmbessern) (http://www.dict.cc/german-english/verschlimmbessern.html). Спасибо. –
JensG