Back to questions
Junior — Middle
64
Какие паттерны из каталога Геммата ты применяешь в своих проектах для решения типичных задач?
Companies where asked
Геомикс
Answer from AI
sobes.tech AI
В своих C# проектах я часто применяю следующие паттерны из каталога Гэммата для решения типичных задач:
- Singleton — для обеспечения единственного экземпляра класса, например, для менеджера конфигурации или логгера.
- Factory Method — для создания объектов без жесткой привязки к конкретным классам, что облегчает расширение и тестирование.
- Observer — для реализации событийной модели, когда объекты подписываются на изменения состояния другого объекта.
- Decorator — для динамического добавления функциональности объектам без изменения их кода.
- Strategy — для выбора алгоритма поведения во время выполнения, например, разные способы сортировки или валидации.
Пример использования паттерна Strategy:
public interface ICompressionStrategy
{
void Compress(string fileName);
}
public class ZipCompression : ICompressionStrategy
{
public void Compress(string fileName) {
Console.WriteLine($"Compressing {fileName} using ZIP");
}
}
public class RarCompression : ICompressionStrategy
{
public void Compress(string fileName) {
Console.WriteLine($"Compressing {fileName} using RAR");
}
}
public class CompressionContext
{
private ICompressionStrategy _strategy;
public CompressionContext(ICompressionStrategy strategy) {
_strategy = strategy;
}
public void SetStrategy(ICompressionStrategy strategy) {
_strategy = strategy;
}
public void CreateArchive(string fileName) {
_strategy.Compress(fileName);
}
}
Такой подход позволяет гибко менять поведение программы без изменения клиентского кода.