Есть основной класс
class A { }
Есть шаблон для дженерик синглтонов:
class Singleton
public string Name = typeof (T).ToString();
private static T instance;
public static T Instance {
get {
return instance ?? (instance = Activator.CreateInstance
public void TestMethod() {
Console.WriteLine("My name is " + Name);
}
}
Есть пачка классов от него унаследованных:
class Test1 : Singleton
Вопрос: как можно в основной программе иметь возможность всегда пробежаться по им всем и обратиться к их методу/полю/свойству? чтобы не пришлось постоянно писать такие пачки:
Test1.Instance.TestMethod();
Test2.Instance.TestMethod();
Test3.Instance.TestMethod();
Test4.Instance.TestMethod();
Или в силу того, что это получаются разные типы - это невозможно?
Ответ
Как я понял, один из путей сделать интерфейс с общими методами
interface ICommon {
void TestMethod();
// ...
}
синглтон класс будет таким
class Singleton
а в основной программе сложить в список и за счет общего интерфейса можно уже манипулировать всеми экземплярами:
List
testList.Add(Test1.Instance);
testList.Add(Test2.Instance);
testList.Add(Test3.Instance);
testList.Add(Test4.Instance);
foreach (var test in testList) {
test.TestMethod();
}
Комментариев нет:
Отправить комментарий