示例#1
0
 public void GetResult()
 {
     _firstClass.SomeMethod11();
     _firstClass.SomeMethod12();
     _secondClass.SomeMethod21();
     _secondClass.SomeMethod22();
     _thirdClass.SomeMethod31();
     _thirdClass.SomeMethod32();
 }
示例#2
0
 //А здесь абстрактно представлена вся реализация.
 //Соответственно, запилив конкретную фабрику, реализующую интерфейс IFactory
 //и возвращающую конкретный типы, реализующие интерфейсы IFirstItem, ISecondItem, IThirdItem
 //можно подавать ее в конструктор класса Client и все будет прекрасно работать
 //без изменения класса Client, т.е. без изменения реализации метода Run()
 //т.е. результат выполнения метода Run() будет зависить от конкретной фабрики,
 //получается мы изменяем результат без изменения поведения.
 public void Run()
 {
     _firstItem.SomeMethod11();
     _firstItem.SomeMethod12();
     _secondItem.SomeMethod21();
     _secondItem.SomeMethod22();
     _thirdItem.SomeMethod31();
     _thirdItem.SomeMethod32();
 }