Etiket : Open-Closed Principle (4)
State Design Pattern - C#
State Design Pattern, nesnelerin durumlarını temsil etmek ve bu durumların değişimini yönetmek için kullanılır.
Shipment domain'ini düşünelim. En basit haliyle kargonun aşağıdaki gibi durumları olur.
- OutForDelivery
- Delivered
- NotDelivered
Eğer kargo yurt dışından geliyorsa bunlara aşağıdaki durumlar da eklenir.
- InTransit
- InCustoms
- InCustomsCleared
Bu durumlar ile ilgili business'ları düşünelim.
Devamını okuObserver Design Pattern - C#
Observer Design Pattern, bir nesnenin iç durumunda meydana gelen değişiklikleri takip etmek isteyen diğer nesnelere bildirmek için kullanılır.
E-ticaret domain'indeki ürünü düşünelim. Üründeki stok ve fiyat değişikliklerini ürün ile ilgilenen ziyaretçilere bildirmek istediğimizde Observer Design Pattern'i tercih edebiliriz.
Devamını okuDecorator Design Pattern - C#
Decorator Design Pattern, bir nesnenin davranışını bozmadan runtime'da nesneye dinamik olarak ek işlevsellikler kazandırmak için kullanılır.
Yukarıdaki gibi ürünleri dönen bir sınıfımız olduğunu varsayalım. Ürünleri cache'den getirmek gibi bir ihtiyacımız olduğunda aklımıza ilk gelen yol bu metotun içerisinde düzenleme yapmak olabilir. Birincisi, bu Single Responsibility prensibine uygun değil. İkincisi, bu sınıf projede farklı yerlerde kullanılıyor olabilir. Cache düzenlemesi yaparsak kullanılan yerlerdeki davranışı bozabiliriz. Çünkü her yerde cache'den gelmesini istemiyor olabiliriz.
Decorator Design Pattern ile bu metotta bir değişiklik yapmadan metota cache özelliği kazandırabiliriz.
Devamını okuStrategy Design Pattern - C#
Strategy Design Pattern, bir algoritmanın farklı varyasyonlarını tanımlamak ve bunları runtime'da değiştirerek birbirleri yerine kullanabilmek için kullanılır.
E-ticaret domain'indeki sepeti düşünelim. Sepeti kredi kartı veya pazar yerinin cüzdanı ile ödeyebilirim. Bunlar birer stratejidir, birbirlerinin yerine kullanılabilirler ve aynı işlemi gerçekleştirirler. Bu tür durumlarda Strategy Design Pattern tercih edilir.
Devamını okuArama
Kategoriler
- Blockchain Uygulamaları
- Bulut Uygulamaları
- Design Patterns
- Devops
- JavaScript Kütüphaneleri
- Web Uygulamaları
Etiketler
- ASP.NET Core
- AWS
- Actor Model
- Adapter Design Pattern
- Bootstrap
- CQRS
- CloudRun
- Comprehend
- Continous Integration
- Couchbase
- DDD
- Dapp
- Dapr
- Decorator Design Pattern
- Dependency Inversion Principle
- Devops
- DynamoDB
- E2E Tests
- ElasticCache
- Ethereum
- Event Sourcing
- Event Store
- GCP
- Ganache
- GeoSearch
- Infura
- Integration Tests
- JavaScript
- Jenkins
- Kubernetes
- Lambda
- Liskov Substitution Principle
- MetaMask
- Microsoft Orleans
- Node.js
- Observer Design Pattern
- Open-Closed Principle
- Rinkeby
- Serverless
- Single Responsibility Principle
- Smart Contract
- State Design Pattern
- Strategy Design Pattern
- Truffle
- Unit Tests
- VueJs
- WalletConnect
- Web3
- xUnit