Skip to content

Commit

Permalink
Add Single responsibility principle
Browse files Browse the repository at this point in the history
  • Loading branch information
Onur Özgür ÖZKAN committed Jan 24, 2013
1 parent 3f7c3a9 commit 67878fe
Showing 1 changed file with 38 additions and 2 deletions.
40 changes: 38 additions & 2 deletions tr/01-architecture.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,43 @@
# SOLID

## SRP - Single responsibility principle
## OCP - Open/closed principle
## SRP - Tek Sorumluluk Prensibi (Single responsibility principle)

Bir sınıfın tek bir sorumluluğu olmalıdır. Örneğin aşağıdaki `User` sınıfında kullanıcının yaratılması, silinmesi,
kayıttan sonra email atılması, login logout olması gibi çok fazla sorumluluk vardır.

```ruby

class User
attr_accessor :username, :password, :email

def create username, password, email
# Kodlar
end

def delete username
# Kodlar
end

def send_register_email email
# Kodlar
end

def login email, password
# Kodlar
end

def logout email
# Kodlar
end

end
```

Bu daha doğru bir yaklaşım emaili Email sınıfının, login logout işlemlerini Session sınıfının, hatta kullanıcının kaydedilip,
silinmesi işlemlerine DAO sınıfının bakması gerekmektedir. Eğer bir sınıfın birden fazla sorumluluğu olursa o sınıfın ileride
modifiye edilmesi yüksek bir olasılıktır ki buda açık kapalı prensibine aykırıdır.

## OCP - Açık Kapalı Prensibi (Open/closed principle)
## LSP - Liskov substitution principle
## ISP - Interface segregation principle
## DIP - Dependency inversion principle
Expand Down

0 comments on commit 67878fe

Please sign in to comment.