Skip to content

Commit a6d3e7b

Browse files
committed
Unify interfaces definitions
1 parent 8b13a95 commit a6d3e7b

File tree

12 files changed

+62
-62
lines changed

12 files changed

+62
-62
lines changed

AbstractFactory.Conceptual/Program.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ namespace RefactoringGuru.DesignPatterns.AbstractFactory.Conceptual
2424
// темой или концепцией высокого уровня. Продукты одного семейства обычно могут
2525
// взаимодействовать между собой. Семейство продуктов может иметь несколько
2626
// вариаций, но продукты одной вариации несовместимы с продуктами другой.
27-
interface IAbstractFactory
27+
public interface IAbstractFactory
2828
{
2929
IAbstractProductA CreateProductA();
3030

@@ -74,7 +74,7 @@ public IAbstractProductB CreateProductB()
7474
//
7575
// RU: Каждый отдельный продукт семейства продуктов должен иметь базовый
7676
// интерфейс. Все вариации продукта должны реализовывать этот интерфейс.
77-
interface IAbstractProductA
77+
public interface IAbstractProductA
7878
{
7979
string UsefulFunctionA();
8080
}
@@ -105,7 +105,7 @@ public string UsefulFunctionA()
105105
// RU: Базовый интерфейс другого продукта. Все продукты могут взаимодействовать
106106
// друг с другом, но правильное взаимодействие возможно только между продуктами
107107
// одной и той же конкретной вариации.
108-
interface IAbstractProductB
108+
public interface IAbstractProductB
109109
{
110110
// EN: Product B is able to do its own thing...
111111
//

Adapter.Conceptual/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace RefactoringGuru.DesignPatterns.Adapter.Conceptual
1818
//
1919
// RU: Целевой класс объявляет интерфейс, с которым может работать
2020
// клиентский код.
21-
interface ITarget
21+
public interface ITarget
2222
{
2323
string GetRequest();
2424
}

Bridge.Conceptual/Program.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ namespace RefactoringGuru.DesignPatterns.Bridge.Conceptual
3434
// делегирует ему всю настоящую работу.
3535
class Abstraction
3636
{
37-
protected Implementation _implementation;
37+
protected IImplementation _implementation;
3838

39-
public Abstraction(Implementation implementation)
39+
public Abstraction(IImplementation implementation)
4040
{
4141
this._implementation = implementation;
4242
}
@@ -54,7 +54,7 @@ public virtual string Operation()
5454
// RU: Можно расширить Абстракцию без изменения классов Реализации.
5555
class ExtendedAbstraction : Abstraction
5656
{
57-
public ExtendedAbstraction(Implementation implementation) : base(implementation)
57+
public ExtendedAbstraction(IImplementation implementation) : base(implementation)
5858
{
5959
}
6060

@@ -74,27 +74,27 @@ public override string Operation()
7474
// RU: Реализация устанавливает интерфейс для всех классов реализации. Он не
7575
// должен соответствовать интерфейсу Абстракции. На практике оба интерфейса
7676
// могут быть совершенно разными. Как правило, интерфейс Реализации
77-
// предоставляет только примитивные операции, в то время как Абстракция
77+
// предоставляет только примитивные операции, в то время как Абстракция
7878
// определяет операции более высокого уровня, основанные на этих примитивах.
79-
interface Implementation
79+
public interface IImplementation
8080
{
8181
string OperationImplementation();
8282
}
8383

8484
// EN: Each Concrete Implementation corresponds to a specific platform and
8585
// implements the Implementation interface using that platform's API.
8686
//
87-
// RU: Каждая Конкретная Реализация соответствует определённой платформе и
87+
// RU: Каждая Конкретная Реализация соответствует определённой платформе и
8888
// реализует интерфейс Реализации с использованием API этой платформы.
89-
class ConcreteImplementationA : Implementation
89+
class ConcreteImplementationA : IImplementation
9090
{
9191
public string OperationImplementation()
9292
{
9393
return "ConcreteImplementationA: The result in platform A.\n";
9494
}
9595
}
9696

97-
class ConcreteImplementationB : Implementation
97+
class ConcreteImplementationB : IImplementation
9898
{
9999
public string OperationImplementation()
100100
{

Builder.Conceptual/Program.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace RefactoringGuru.DesignPatterns.Builder.Conceptual
1919
//
2020
// RU: Интерфейс Строителя объявляет создающие методы для различных частей
2121
// объектов Продуктов.
22-
public interface Builder
22+
public interface IBuilder
2323
{
2424
void BuildPartA();
2525

@@ -35,7 +35,7 @@ public interface Builder
3535
// RU: Классы Конкретного Строителя следуют интерфейсу Строителя и
3636
// предоставляют конкретные реализации шагов построения. Ваша программа
3737
// может иметь несколько вариантов Строителей, реализованных по-разному.
38-
public class ConcreteBuilder : Builder
38+
public class ConcreteBuilder : IBuilder
3939
{
4040
private Product _product = new Product();
4141

@@ -161,9 +161,9 @@ public string ListParts()
161161
// строителями.
162162
public class Director
163163
{
164-
private Builder _builder;
164+
private IBuilder _builder;
165165

166-
public Builder Builder
166+
public IBuilder Builder
167167
{
168168
set { _builder = value; }
169169
}

ChainOfResponsibility.Conceptual/Program.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ namespace RefactoringGuru.DesignPatterns.ChainOfResponsibility.Conceptual
2121
//
2222
// RU: Интерфейс Обработчика объявляет метод построения цепочки
2323
// обработчиков. Он также объявляет метод для выполнения запроса.
24-
interface Handler
24+
public interface IHandler
2525
{
26-
Handler SetNext(Handler handler);
26+
IHandler SetNext(IHandler handler);
2727

2828
object Handle(object request);
2929
}
@@ -33,11 +33,11 @@ interface Handler
3333
//
3434
// RU: Поведение цепочки по умолчанию может быть реализовано внутри базового
3535
// класса обработчика.
36-
abstract class AbstractHandler : Handler
36+
abstract class AbstractHandler : IHandler
3737
{
38-
private Handler _nextHandler;
38+
private IHandler _nextHandler;
3939

40-
public Handler SetNext(Handler handler)
40+
public IHandler SetNext(IHandler handler)
4141
{
4242
this._nextHandler = handler;
4343

Command.Conceptual/Program.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ namespace RefactoringGuru.DesignPatterns.Command.Conceptual
1717
// EN: The Command interface declares a method for executing a command.
1818
//
1919
// RU: Интерфейс Команды объявляет метод для выполнения команд.
20-
interface Command
20+
public interface ICommand
2121
{
2222
void Execute();
2323
}
2424

2525
// EN: Some commands can implement simple operations on their own.
2626
//
2727
// RU: Некоторые команды способны выполнять простые операции самостоятельно.
28-
class SimpleCommand : Command
28+
class SimpleCommand : ICommand
2929
{
3030
private string _payload = string.Empty;
3131

@@ -45,7 +45,7 @@ public void Execute()
4545
//
4646
// RU: Но есть и команды, которые делегируют более сложные операции другим
4747
// объектам, называемым «получателями».
48-
class ComplexCommand : Command
48+
class ComplexCommand : ICommand
4949
{
5050
private Receiver _receiver;
5151

@@ -109,19 +109,19 @@ public void DoSomethingElse(string b)
109109
// команде.
110110
class Invoker
111111
{
112-
private Command _onStart;
112+
private ICommand _onStart;
113113

114-
private Command _onFinish;
114+
private ICommand _onFinish;
115115

116116
// EN: Initialize commands.
117117
//
118118
// RU: Инициализация команд
119-
public void SetOnStart(Command command)
119+
public void SetOnStart(ICommand command)
120120
{
121121
this._onStart = command;
122122
}
123123

124-
public void SetOnFinish(Command command)
124+
public void SetOnFinish(ICommand command)
125125
{
126126
this._onFinish = command;
127127
}
@@ -135,15 +135,15 @@ public void SetOnFinish(Command command)
135135
public void DoSomethingImportant()
136136
{
137137
Console.WriteLine("Invoker: Does anybody want something done before I begin?");
138-
if (this._onStart is Command)
138+
if (this._onStart is ICommand)
139139
{
140140
this._onStart.Execute();
141141
}
142142

143143
Console.WriteLine("Invoker: ...doing something really important...");
144144

145145
Console.WriteLine("Invoker: Does anybody want something done after I finish?");
146-
if (this._onFinish is Command)
146+
if (this._onFinish is ICommand)
147147
{
148148
this._onFinish.Execute();
149149
}

FactoryMethod.Conceptual/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public override IProduct FactoryMethod()
9494
//
9595
// RU: Интерфейс Продукта объявляет операции, которые должны выполнять все
9696
// конкретные продукты.
97-
interface IProduct
97+
public interface IProduct
9898
{
9999
string Operation();
100100
}

Mediator.Conceptual/Program.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace RefactoringGuru.DesignPatterns.Mediator.Conceptual
2222
// RU: Интерфейс Посредника предоставляет метод, используемый компонентами
2323
// для уведомления посредника о различных событиях. Посредник может
2424
// реагировать на эти события и передавать исполнение другим компонентам.
25-
interface Mediator
25+
public interface IMediator
2626
{
2727
void Notify(object sender, string ev);
2828
}
@@ -32,7 +32,7 @@ interface Mediator
3232
//
3333
// RU: Конкретные Посредники реализуют совместное поведение, координируя
3434
// отдельные компоненты.
35-
class ConcreteMediator : Mediator
35+
class ConcreteMediator : IMediator
3636
{
3737
private Component1 _component1;
3838

@@ -69,14 +69,14 @@ public void Notify(object sender, string ev)
6969
// экземпляра посредника внутри объектов компонентов.
7070
class BaseComponent
7171
{
72-
protected Mediator _mediator;
72+
protected IMediator _mediator;
7373

74-
public BaseComponent(Mediator mediator = null)
74+
public BaseComponent(IMediator mediator = null)
7575
{
7676
this._mediator = mediator;
7777
}
7878

79-
public void SetMediator(Mediator mediator)
79+
public void SetMediator(IMediator mediator)
8080
{
8181
this._mediator = mediator;
8282
}

Memento.Conceptual/Program.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,15 @@ private string GenerateRandomString(int length = 10)
7373
// EN: Saves the current state inside a memento.
7474
//
7575
// RU: Сохраняет текущее состояние внутри снимка.
76-
public Memento Save()
76+
public IMemento Save()
7777
{
7878
return new ConcreteMemento(this._state);
7979
}
8080

8181
// EN: Restores the Originator's state from a memento object.
8282
//
8383
// RU: Восстанавливает состояние Создателя из объекта снимка.
84-
public void Restore(Memento memento)
84+
public void Restore(IMemento memento)
8585
{
8686
if (!(memento is ConcreteMemento))
8787
{
@@ -100,7 +100,7 @@ public void Restore(Memento memento)
100100
// RU: Интерфейс Снимка предоставляет способ извлечения метаданных снимка,
101101
// таких как дата создания или название. Однако он не раскрывает состояние
102102
// Создателя.
103-
interface Memento
103+
public interface IMemento
104104
{
105105
string GetName();
106106

@@ -114,7 +114,7 @@ interface Memento
114114
//
115115
// RU: Конкретный снимок содержит инфраструктуру для хранения состояния
116116
// Создателя.
117-
class ConcreteMemento : Memento
117+
class ConcreteMemento : IMemento
118118
{
119119
private string _state;
120120

@@ -161,7 +161,7 @@ public DateTime GetDate()
161161
// работает со всеми снимками через базовый интерфейс Снимка.
162162
class Caretaker
163163
{
164-
private List<Memento> _mementos = new List<Memento>();
164+
private List<IMemento> _mementos = new List<IMemento>();
165165

166166
private Originator _originator = null;
167167

Proxy.Conceptual/Program.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace RefactoringGuru.DesignPatterns.Proxy.Conceptual
2121
// Субъекта, так и для Заместителя. Пока клиент работает с Реальным
2222
// Субъектом, используя этот интерфейс, вы сможете передать ему заместителя
2323
// вместо реального субъекта.
24-
public interface Subject
24+
public interface ISubject
2525
{
2626
void Request();
2727
}
@@ -36,7 +36,7 @@ public interface Subject
3636
// которая к тому же может быть очень медленной или точной – например,
3737
// коррекция входных данных. Заместитель может решить эти задачи без
3838
// каких-либо изменений в коде Реального Субъекта.
39-
class RealSubject : Subject
39+
class RealSubject : ISubject
4040
{
4141
public void Request()
4242
{
@@ -47,7 +47,7 @@ public void Request()
4747
// EN: The Proxy has an interface identical to the RealSubject.
4848
//
4949
// RU: Интерфейс Заместителя идентичен интерфейсу Реального Субъекта.
50-
class Proxy : Subject
50+
class Proxy : ISubject
5151
{
5252
private RealSubject _realSubject;
5353

@@ -95,7 +95,7 @@ public void LogAccess()
9595

9696
public class Client
9797
{
98-
public void ClientCode(Subject subject)
98+
public void ClientCode(ISubject subject)
9999
{
100100
subject.Request();
101101
}

Strategy.Conceptual/Program.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class Context
2727
// RU: Контекст хранит ссылку на один из объектов Стратегии. Контекст не
2828
// знает конкретного класса стратегии. Он должен работать со всеми
2929
// стратегиями через интерфейс Стратегии.
30-
private Strategy _strategy;
30+
private IStrategy _strategy;
3131

3232
public Context()
3333
{ }
@@ -37,7 +37,7 @@ public Context()
3737
//
3838
// RU: Обычно Контекст принимает стратегию через конструктор, а также
3939
// предоставляет сеттер для её изменения во время выполнения.
40-
public Context(Strategy strategy)
40+
public Context(IStrategy strategy)
4141
{
4242
this._strategy = strategy;
4343
}
@@ -47,7 +47,7 @@ public Context(Strategy strategy)
4747
//
4848
// RU: Обычно Контекст позволяет заменить объект Стратегии во время
4949
// выполнения.
50-
public void SetStrategy(Strategy strategy)
50+
public void SetStrategy(IStrategy strategy)
5151
{
5252
this._strategy = strategy;
5353
}
@@ -85,7 +85,7 @@ public void DoSomeBusinessLogic()
8585
//
8686
// Контекст использует этот интерфейс для вызова алгоритма, определённого
8787
// Конкретными Стратегиями.
88-
interface Strategy
88+
public interface IStrategy
8989
{
9090
object DoAlgorithm(object data);
9191
}
@@ -95,7 +95,7 @@ interface Strategy
9595
//
9696
// RU: Конкретные Стратегии реализуют алгоритм, следуя базовому интерфейсу
9797
// Стратегии. Этот интерфейс делает их взаимозаменяемыми в Контексте.
98-
class ConcreteStrategyA : Strategy
98+
class ConcreteStrategyA : IStrategy
9999
{
100100
public object DoAlgorithm(object data)
101101
{
@@ -106,7 +106,7 @@ public object DoAlgorithm(object data)
106106
}
107107
}
108108

109-
class ConcreteStrategyB : Strategy
109+
class ConcreteStrategyB : IStrategy
110110
{
111111
public object DoAlgorithm(object data)
112112
{

0 commit comments

Comments
 (0)