Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5a7d37f

Browse files
Update README.md
1 parent 2ba26f1 commit 5a7d37f

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

‎README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ public class SectionDatabase
265265

266266
return Database;
267267
}
268-
}
268+
}
269269
```
270270
:white_check_mark: __Преимущества паттерна Singleton__: класс гарантированно имеет только один экземпляр и не более, у нас есть точка доступа к единственному экземпляру (в нашем случае это метод Initialize) <br>
271271
:x: __Недостатки__: нарушение принципа единой ответственности (Single Responsibility Principle), требуется особая обработка в многопоточной среде.
@@ -507,7 +507,7 @@ public abstract class User
507507
/// </summary>
508508
/// <returns>Данные пользователя в виде строки.</returns>
509509
public override string ToString() => $"Идентификатор - {Id} Имя - {FirstName} Фамилия - {LastName} Отчество - {Patronymic}";
510-
}
510+
}
511511
```
512512
:two: Теперь реализуем класс-наследник исполнителя: в него не будем добавлять дополнительные свойства. Реализация метода Clone будет выглядеть так:
513513
```C#
@@ -527,7 +527,7 @@ public class Executor : User
527527
/// </summary>
528528
/// <returns>Данные исполнителя в виде строки.</returns>
529529
public override string ToString() => $"Данные исполнителя: {base.ToString()}";
530-
}
530+
}
531531
```
532532
> В данном случае мы можем выполнить неполное (поверхностное) копирование. Это подходит тогда, когда у нас все поля Executor являются значимыми типами (исключение: string).
533533
@@ -571,7 +571,7 @@ public class Customer : User
571571
/// </summary>
572572
/// <returns>Данные заказчика в виде строки.</returns>
573573
public override string ToString() => $"Данные заказчика: {base.ToString()} {Passport}";
574-
}
574+
}
575575
```
576576
> Здесь у нас уже присутствует класс Passport - это ссылочный тип, соответсвенно, мы не можем использовать неполное копирование. Если мы будем использовать неполное копирование, то у нас будет два заказчика ссылаться на один и тот же объект паспортных данных. Поэтому нам придется создать новый объект паспорта и вручную его проинициализировать.
577577
@@ -1109,6 +1109,7 @@ public class User : IObserver<Message>
11091109
Console.WriteLine($"Полученное уведомление: {Environment.NewLine}{value}{Environment.NewLine}" +
11101110
$"Логин получателя: {_login}");
11111111
}
1112+
}
11121113
```
11131114
:three: Теперь создадим класс нашего корпоративного портала, реализующий интерфейс IObservable (наблюдаемый объект). В качестве параметра также выступает тип данных Message - тип сообщения для подписчиков.
11141115
```C#

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /