1. Conclusion </ b>
2. What is Liskov's substitution principle? </ B>
3. Why is Liskov's substitution principle necessary? </ B>
4. Liskov Substitution Principle How to use </ b>
5. What I learned from here </ b>
Follow Liskov's substitution principle!
● What is Liskov's substitution principle?
Simply put, parent classes are child classes I have to make the same movement </ b>
To put it the other way around, the child class is a method of the parent class.
It means that you should not change the behavior.
This will also be explained using an example!
Liskov Substitution Principle
class A
def initialize(aaa)
end
def a
end
end
class B < A
def initialize(aaa)
@bbb = aaa
end
def b
end
end
================
class C < A
def initialize(aaa)
@bbb = aaa
@ccc = aaa
end
def a
end
def c
end
Not Liskov's substitution principle
class A
def initialize(aaa)
end
def a
end
end
class B < A
def initialize(aaa)
@bbb = aaa
end
def b
end
end
class B < A
def initialize(aaa)
@ccc = aaa
end
================
class B < A
def initialize(aaa)
@bbb = aaa
@ccc = aaa
end
def a
if ccc
else
ccc_a
end
def c
end
end
For those who are "not a Liskov Substitution Principle" Under ================ Although it is class B Towards the "Liskov Substitution Principle" Under ================ Converting to class C.
Rather than being together in class B It is divided into class iC and follows the principle.
In conclusion, the key points when writing programming are: I think it will be summarized in three.
I) Maintainability: Correction (easy to find errors) and ease of management Ⅱ) Extensibility: Ease of implementing additional functions Ⅲ) Readability: Easy to understand description I think that is necessary.
The above three things are when I explain the other four principles I say the same thing, so if you read one of the five principles All the conclusions fit into these three.
In other words, to fulfill the above three
Follow Liskov's substitution principle "also (because there are four other principles)"! !! </ b>
i) I didn't know the Liskov principle itself at all The research itself was very valuable!
ii) Although the parent class and the child class are linked, The point was not to be influenced by the parent class from the child class!
Recommended Posts