-
Notifications
You must be signed in to change notification settings - Fork 0
Аббас Гусенов edited this page Sep 20, 2025
·
5 revisions
- r/math / OOP and Algebra
- Encapsulation
- Inheritance
- Polymorphism
- Polymorphism (computer science)
- Dynamic dispatch is the process of selecting which implementation of a polymorphic operation (method or function) to call at run time.
- Динамическая идентификация типа данных
- Интроспекция (программирование)
- Field (computer science)
- Object–relational impedance mismatch is a set of conceptual and technical difficulties that are often encountered when a RDBMS is being served by an application program (or multiple application programs) written in an object-oriented programming language or style, particularly because objects or class definitions must be mapped to database tables defined by a relational schema.
-
Object composition combine objects or data types into more complex ones
- Object-oriented programming is based on objects to encapsulate data and behavior. It uses two main techniques for assembling and composing functionality into more complex ones, sub-typing and object composition. Object composition is about combining objects within compound objects, and at the same time, ensuring the encapsulation of each object by using their well-defined interface without visibility of their internals. In this regard, object composition differs from data structures, which do not enforce encapsulation.
- In class-based and typed programming languages, types can be divided into composite and non-composite types, and composition can be regarded as a relationship between types: an object of a composite type (e.g. car) "has" objects of other types (e.g. wheel). When a composite object contains several sub-objects of the same type, they may be assigned to particular roles, often distinguished by names or numbers. For example, a Point object might contain 3 numbers, each representing distance along a different axis, such as 'x', 'y', and 'z'. The study of part-whole relationships in general, is mereology.
- Composition must be distinguished from subtyping, which is the process of adding detail to a general data type to create a more specific data type. For instance, cars may be a specific type of vehicle: car is a vehicle. Subtyping doesn't describe a relationship between different objects, but instead, says that objects of a type are simultaneously objects of another type. The study of such relationships is ontology.
- Агрегирование (программирование)
- Object lifetime is the time between an object's creation and its destruction.
- Prototype-based programming is a style of object-oriented programming in which behaviour reuse (known as inheritance) is performed via a process of reusing existing objects that serve as prototypes.
- Category:Prototype-based programming languages
-
Class invariant an invariant used for constraining objects of a class.
- Инвариант класса инвариант, используемый для ограничения объектов класса.
- Mixin is a class that contains methods for use by other classes without having to be the parent class of those other classes.
- Fragile base class is a fundamental architectural problem of object-oriented programming systems where base classes (superclasses) are considered "fragile" because seemingly safe modifications to a base class, when inherited by the derived classes, may cause the derived classes to malfunction.
- Immutable object
- Expression problem is a challenging problem in programming languages that concerns the extensibility and modularity of statically typed data abstractions.
- Monkey patch is a technique used to dynamically update the behavior of a piece of code at run-time.
-
Object (computer science) is an entity that has state, behavior, and identity.
- Объект (программирование) сущность в цифровом пространстве, обладающая состоянием и поведением, имеющая поля и методы.
- The Expression Problem by Philip Wadler
-
Extensibility for the Masses: Practical Extensibility with Object Algebras by Bruno C. d. S. Oliveira and William R. Cook
- Hacker News
-
ECOOP 2012 best paper award
- The basic idea is that you create a family of objects via an Abstract Factory. You can add new objects to the family by extending the factory as per usual, but the twist is you can also add new operations by overriding the factory methods to do other things, like evaluation or pretty printing.
- sample implementations
- Compositional Programming by Weixin Zhang, Yaozhu Sun, and Bruno C. d. S. Oliveira.
- Хабр / Expression Problem и Объектные алгебры
- Java: The Expression Problem & Object Algebras
- Scrap Your Boilerplate with Object Algebras by Adrian Colyer
- Generalised factories for extensibility An exploration of extensibility with object algebras in TypeScript and its relation to visitors and typed tagless final interpreters in Haskell.
- Who's afraid of Object Algebras?
-
national research institute for mathematics and computer science in the Netherlands
- Object algebras are a simple technique that solves a long-standing problem of extensibility in programming languages, called the expression problem.
- The concept of Object Algebras was invented by Bruno C. d. S. Oliveira of the University of Hong Kong and William R. Cook of the University of Texas at Austin.
- InfoQ / Who's Afraid of Object Algebras? by Tijs van der Storm
- object algebras as a solution to the expression problem – the inability to extend functional programming languages.
-
national research institute for mathematics and computer science in the Netherlands
- Feature-Oriented Programming with Object Algebras by Bruno C. d. S. Oliveira, Tijs van der Storm, Alex Loh & William R. Cook
- Scrap your boilerplate with object algebras by Haoyuan Zhang, Zewei Chu, Bruno C. d. S. Oliveira, and Tijs van der StormAuthors Info & Claims
- Streams à la carte: Extensible Pipelines with Object Algebras by Aggelos Biboudis, Nick Palladinos, George Fourtounis, and Yannis Smaragdakis
- Quora / What are the downsides of object-oriented programming?
- r/learnprogramming / Why do some people say OOP is bad?
- wiki.c2.com / Oo Is Anthropomorphic vs Oo Is Not Anthropomorphic
-
Pitfalls of Object Oriented Programming by Tony Albrecht
- Google Drive / Pitfalls2009.pdf
- GitHub / Michaelangel007/game_dev_pdfs / c++/Pitfalls_of_Object_Oriented_Programming_GCAP_09.pdf
- harmful.cat-v.org/software / Object Oriented Programming is Inherently Harmful
- YouTube / Revisited - (TGC 2017)
- YouTube / What's Wrong With Object-Oriented Programming? by Yegor Bugayenko
- Хабр
- YouTube / ThePrimeTime / Functional Programming IS NO BETTER than Object Oriented Programming
- YouTube / OOP vs. Data Oriented Programming: Which One to Choose? by Venkat Subramaniam
- Just as the goto statement became the bad boy of Structured Programming, the switch statement has become the bad boy of Object-Oriented Programming. Object-Oriented Programming is about data-driven control. Programmer's shouldn't be in the business of specifying the flow of control. Instead, programmers should be in the business of specifying data. The data should decide the flow of control. This is the purpose of overloading, subsumption, and dynamic dispatch.
- sky.pro / Сущности в программировании: основы, различия с объектами