Skip to content

Repository files navigation

Java ile SOLID Prensipleri

SOLID; Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation ve Dependency Inversion prensiplerinin baş harflerinden oluşan bir akronimdir. Bu prensipler, daha esnek, sürdürülebilir ve bakımı kolay kodlar yazmamıza yardımcı olur.

Bu depo her prensip için ayrı bir Maven modülü içeren multi-module türünden bir proje haline getirilmiştir. Her modülde prensibin:

  • begin paketi → prensibin ihlal edildiği (kötü) örnek,
  • end paketi → prensibin doğru uygulandığı örnek,
  • common paketi → her iki örneğin paylaştığı yardımcı sınıflar (bazı modüllerde yoktur)

şeklinde bir düzeni vardır.

Proje yapısı

Modül Paket kökü begin / end alt paketleri
single-responsibility com.buraksenyurt.training.solid.srp .srp.begin.Main / .srp.end.Main
open-closed com.buraksenyurt.training.solid.ocp .ocp.begin.Main / .ocp.end.Main
liskov-substitution com.buraksenyurt.training.solid.lsp .lsp.begin.Main / .lsp.end.Main
interface-segregation com.buraksenyurt.training.solid.isp .isp.begin.Main / .isp.end.Main
dependency-inversion com.buraksenyurt.training.solid.dip .dip.begin.Main / .dip.end.Main

Gereksinimler

  • JDK 21 veya üzeri
  • Apache Maven 3.9+
# Ubuntu
sudo apt update
sudo apt install default-jdk maven

java -version
mvn -version

Komut satırından çalıştırmak

Tüm modülleri derlemek için;

mvn clean compile

Bir prensibin doğru (end) örneğini çalıştırmak için;

mvn -pl single-responsibility exec:java
mvn -pl open-closed            exec:java
mvn -pl liskov-substitution    exec:java
mvn -pl interface-segregation  exec:java
mvn -pl dependency-inversion   exec:java

Aynı prensibin ihlal edildiği (begin) örneği çalıştırmak için begin profilini ekleyerek çalıştırın:

mvn -pl single-responsibility exec:java -P begin

-pl <modül> çalıştırılacak modülü seçer. Varsayılan olarak end.Main, -P begin verildiğinde begin.Main çalışır (bkz. kök pom.xml).

Herhangi bir Main sınıfını doğrudan tam adıyla da çalıştırabilirsiniz:

mvn -pl dependency-inversion exec:java -Dexec.mainClass=com.buraksenyurt.training.solid.dip.begin.Main

About

SOLID yazılım prensiplerinin Java programlama dili ile ele alındığı bireysel gelişim reposudur.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages