A professional, high-quality showcase of core software design patterns implemented in Java. This repository serves as a practical guide for developers aiming to master software architecture and clean code principles.
DP (Design Patterns), yazılım geliştirme sürecinde sıkça karşılaşılan problemlere yönelik optimize edilmiş çözümler sunan bir eğitim ve referans deposudur. Proje, Gang of Four (GoF) tarafından tanımlanan desenleri modern Java standartlarıyla (Java 17+) harmanlayarak sunar.
Bu depo; sadece kod bloklarını değil, aynı zamanda SOLID prensiplerine uygun, test edilebilir ve sürdürülebilir bir mimarinin nasıl kurulacağını gösterir.
Proje üç ana kategoride toplanan tasarım desenlerini içerir:
- Creational (Oluşturucu) Desenler: Nesne oluşturma süreçlerini kontrol altına alarak esneklik sağlar. (Singleton, Factory, Builder, Abstract Factory, Prototype)
- Structural (Yapısal) Desenler: Sınıflar ve nesneler arasındaki ilişkileri düzenleyerek büyük yapıların verimli kurulmasını sağlar. (Adapter, Bridge, Composite, Decorator, Facade, Proxy)
- Behavioral (Davranışsal) Desenler: Nesneler arasındaki iletişimi ve sorumluluk dağılımını optimize eder. (Strategy, Observer, Command, State, Visitor, Iterator)
- Clean Code Odaklı: Karmaşıklıktan uzak, geliştirici dostu ve açıklayıcı kod yapısı.
- Dil: Java 17+
- Bağımlılık Yönetimi: Maven / Gradle
- Test: JUnit 5
- IDE: IntelliJ IDEA / Eclipse / VS Code
Projeyi yerel makinenizde çalıştırmak için aşağıdaki adımları izleyin:
-
Depoyu klonlayın:
git clone https://github.com/umutbarancicek/DP.git
-
Proje dizinine gidin:
cd DP -
Bağımlılıkları yükleyin ve projeyi derleyin:
mvn clean install
Her tasarım deseni kendi paketi altında bağımsız bir main metodu veya birim testi (Unit Test) ile birlikte gelir. Örneğin, Singleton desenini incelemek için:
// Örnek kullanım mantığı
public class Main {
public static void main(String[] args) {
DatabaseConnection connection = DatabaseConnection.getInstance();
connection.connect();
}
}İlgili desenin klasörüne giderek örnek uygulamayı doğrudan çalıştırabilirsiniz.
Katkılarınız bu depoyu daha güçlü hale getirir!
- Bu depoyu Fork edin.
- Yeni bir Feature branch oluşturun (
git checkout -b feature/AmazingFeature). - Değişikliklerinizi Commit edin (
git commit -m 'Add some AmazingFeature'). - Branch'inizi Push edin (
git push origin feature/AmazingFeature). - Bir Pull Request açın.
Bu proje MIT Lisansı altında lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına göz atabilirsiniz.
Geliştirici: @umutbarancicek
Konular: #clean-code #design-patterns #java-oop #software-architecture #solid-principles