From c6c577ba9e1b70fc2192ac85d6d9d591ca81ab43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=A4drich?= <11225821+shaedrich@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:00:34 +0100 Subject: [PATCH 1/2] add topic oop --- topics/oop/index.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 topics/oop/index.md diff --git a/topics/oop/index.md b/topics/oop/index.md new file mode 100644 index 00000000000..8ff2594440b --- /dev/null +++ b/topics/oop/index.md @@ -0,0 +1,16 @@ +--- +aliases: object-oriented-programming, object-oriented-design +created_by: MIT, Alan Kay +display_name: Object-oriented programming (OOP) +released: 1960 +short_description: Object-oriented programming is a programming paradigm based on the concept of objects fundamental to many programming languages. +topic: oop +wikipedia_url: https://en.wikipedia.org/wiki/Object-oriented_programming +related: procedural-programming, open-closed-principle, inheritance, polymorphism, orm +--- +**Object-oriented programming** (**OOP**) is a programming paradigm based on the concept of objects fundamental to many programming languages, including [Java](https://github.com/topics/java) and [C++](https://github.com/topics/cpp). OOP can be devided in two sub types: class-based (or "classical") and prototype-based OOP (found in [JavaScript](https://github.com/topics/javascript), for example). + +Object-oriented programming has several advantages over procedural programming: +* OOP provides a clear structure for the programs +* OOP helps to keep the code DRY "Don't Repeat Yourself", and makes the code easier to maintain, modify and debug +* Logic can be abstracted, encapsulated, composed, inherited and decoupled From a42941c49ec8e5a60402bf0a8cfc9802c802971c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=A4drich?= <11225821+shaedrich@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:13:00 +0100 Subject: [PATCH 2/2] add two more programming paradigms --- topics/oop/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/topics/oop/index.md b/topics/oop/index.md index 8ff2594440b..4ce478f6850 100644 --- a/topics/oop/index.md +++ b/topics/oop/index.md @@ -6,7 +6,7 @@ released: 1960 short_description: Object-oriented programming is a programming paradigm based on the concept of objects fundamental to many programming languages. topic: oop wikipedia_url: https://en.wikipedia.org/wiki/Object-oriented_programming -related: procedural-programming, open-closed-principle, inheritance, polymorphism, orm +related: procedural-programming, open-closed-principle, inheritance, polymorphism, orm, functional-programming, event-driven-programming --- **Object-oriented programming** (**OOP**) is a programming paradigm based on the concept of objects fundamental to many programming languages, including [Java](https://github.com/topics/java) and [C++](https://github.com/topics/cpp). OOP can be devided in two sub types: class-based (or "classical") and prototype-based OOP (found in [JavaScript](https://github.com/topics/javascript), for example).