Search Blog

Search duranek.blogspot.com

Wednesday, February 8, 2012

Software Design Principles

Design Principles

1)    Open Close Principle
    Means : open for extension, closed for modification.
    Bir class'i degistirmek istiyorsan, extend et, degistirme.
    Bunun nedeni, backward compatibility, regression testing.

2)     Dependency Inversion Principle

    Dependency injection, for low coupling, inject the dependency,
instead of creating in your body.

3)    Interface Segregation Principle

    Interface'in icine sadece gerekli metodlari koy. Fazla koyarsan
gereksiz yere implementor lar, uygulamak zorunda kalir bu metodlari.

4)    Single Responsibility Principle.
    Eger bir class'in birden cok responsibility'si varsa, o class'i ayirmak lazim.
    Ayirmazsak, o class'i bir nedenden dolayi degistirdigimizde, diger
    nedenlerden dolayi da degistirmek zorunda kalabiliriz.

5)    Liskov's Subtitution Principle

    Child class 'in ozellikleri, base class in ozelliklerini bozmayacak.

    Yani child class'i istedigimiz zaman base class ile degistirebilmeliyiz.
    ve bir sorun yasamamaliyiz

No comments: