Object-Oriented Design Pattern
Jump to navigation
Jump to search
An Object-Oriented Design Pattern is a software design pattern based on software classes and software objects.
- Context:
- …
- Counter-Example(s):
- See: Software Model, Software Design, Object-Oriented Program, Object-Oriented Programming Paradigm, Dependency Inversion Principle.
References
2024
- (Wikipedia, 2024) ⇒ https://en.wikipedia.org/wiki/Object-oriented_design Retrieved:2024-2-22.
- Object-oriented design (OOD) is the process of planning a system of interacting objects for the purpose of solving a software problem. It is a method for software design. By defining classes and their functionality for their children (instantiated objects), each object can run the same implementation of the class with its own state.
- NOTES:
- It can (typically) enable each object to operate with its unique state while sharing the class's implementation.
- It can outline the process of planning a system of interacting objects to solve a software problem, emphasizing the creation of object classes and their functionalities for their instantiated objects.
- It can define objects within a system as encapsulated data and procedures grouped to represent an entity, focusing on object interfaces for interaction and the discipline of defining objects and their interactions to address identified problems.
- It typically differentiates class-based object-oriented design from prototype-based approaches, highlighting the process of object-oriented decomposition and the use of notation for logical, physical, state, and dynamic system models.
- It identifies the input for object-oriented design as the output of object-oriented analysis, allowing for parallel analysis and design processes with iterative feedback cycles and incremental development.
- It can include: Object/Class Pattern, Information hiding Pattern, Inheritance Pattern, Interface, and Polymorphism.
- It can include sequence diagrams to detail system events and class diagrams to describe system structure, attributes, and class relationships.
- It can include Dependency injection, Acyclic dependencies principle, and Composite reuse principle, underlining approaches to enhance design quality and system maintainability.