У меня есть класс EqualCondition
, который реализует мой собственный интерфейс ICondition
, который имеет только один метод: SatisfiedBy(Something)
.
public class EqualCondition : ICondition {
private Something m_Something;
public HelloCondition(Something something) {
m_Something = something;
}
// Magic!!!
public bool SatisfiedBy(Something something) {
return something == m_Something;
}
}
Так что ICondition
очень просто реализовать. Сейчас я пытаюсь создать CombinationCondition
, который также реализует его. Идея состоит в том, что CombinationCondition
будет содержать список ICondition
с, который будет определять, будет ли SatisfiedBy
успешным или нет.
Моей первой мыслью было заставить CombinationCondition
реализовать IList<Something>
, но я быстро понял, что только дублирую List<Something>
. Так почему бы просто не создать подкласс?
Эта идея звучала хорошо, пока я не начал снова думать о том, как реализовать SatisfiedBy
, если я просто подкласс List<Something>
. Мне нужно сделать:
return innerList.All(x => x.SatisfiedBy(something))
Но как мне получить доступ к внутреннему списку?