In my article, I will talk about a subject that will have a level of Object Oriented Programming. If you?re ready, let?s start
Object-Oriented Design Principles represent a set of principles that are the essence of object-oriented programming and help us not to have a bad design. Most software developers spend time in abstraction, encapsulation, polymorphism, inheritance and design. Knowing object oriented design principles is important in creating a clean and modular design.
According to Robert Martin, there are three types of features in the software developed without using object-oriented design.
- Rigidity: Software with this feature is difficult to change because any change affects the majority of the system.
- Fragility: When changes to this feature are made, unexpected parts of the system may be affected.
- Immotility: It is very difficult to re-use the components of the softwares in other applications because they cannot be separated from the current application.
Changes and innovations are undoubtedly an integral part of the software world. The reason for the deterioration in software design is not just change. One of the biggest reasons for failure is the introduction of ?unplanned dependencies big into the system. Each part of the software system is connected to another module. Therefore, the change in one part affects other areas. During the design of software systems, a number of principles should be followed in order to manage factors such as rigidity, fragility, immotility and to establish systems that are resistant to these factors.
I will continue to write the following principles in the following articles. You can review the written principles below:
- Common Closure Principle
- Single Responsibility Principle
- Dependency Inversion Principle
- KISS(Keep It Simple Stupid) Principle
- YAGNI(You Aren?t Gonna Need It) Principle
- DRY(Don?t Repeat Yourself) Principle
- Module Encapsulation Principle
- Open Closed Principle
- Interface Separation Principle
- Liskov?s Substitution Principle
Yes, we have entered into Object Oriented Design Methods. In the following articles we will continue to learn the principles. See you later.