Skip to content

Commit

Permalink
Create abstract-factory.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ozlematayy authored Dec 21, 2023
1 parent bcf8faa commit 9851d10
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions abstract-factory.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Abstract Factory Design Pattern

Bu örnek, Abstract Factory tasarım deseni kullanarak farklı logger türlerinin yaratılmasını ve kullanılmasını gösterir.

## Genel Bakış

![Abstract Factory Design Pattern](https://github.com/ozlematayy/design-patterns/assets/77455910/2f1cdefe-fc99-49f1-9d99-def45070be13)

Bu kod örneği, logger (günlük kayıt) işlevselliği sağlayan bir Abstract Factory tasarım desenini içerir. `ILogger` arayüzü, loglama işlevlerini tanımlar ve bu arayüzü implemente eden farklı logger sınıfları bulunur. `ILoggerFactory` arayüzü ise `ILogger` nesnelerinin yaratılmasını sağlayan bir yöntem içerir.

## Yapı

- `ILogger`: Loglama işlevselliğini tanımlayan arayüz.
- `FileLogger`, `NetworkLogger`: `ILogger` arayüzünü uygulayan farklı logger sınıfları.
- `ILoggerFactory`: `ILogger` nesnelerini yaratmayı tanımlayan arayüz.
- `FileLoggerFactory`, `NetworkLoggerFactory`: `ILoggerFactory` arayüzünü implemente eden fabrika sınıfları, farklı logger türlerini yaratır.

## Nasıl Kullanılır

1. `LoggingClient` sınıfı, `ILoggerFactory`'den gelen fabrika sınıflarını kullanarak logger nesnelerini oluşturur.
2. `LogMessage` metodu üzerinden loglama işlemini gerçekleştirir.
3. `Main` fonksiyonunda, farklı logger türlerini kullanarak loglama işlemi örneklenir.

## Nasıl Çalıştırılır

1. Proje dosyalarını indirin/klonlayın.
2. Çalıştırmak için bir C# derleyici kullanarak veya bir C# IDE'sinde projeyi açarak `Program.cs` dosyasını çalıştırın.

0 comments on commit 9851d10

Please sign in to comment.