Skip to content

Latest commit

 

History

History
46 lines (39 loc) · 2.59 KB

File metadata and controls

46 lines (39 loc) · 2.59 KB

OOP

Books

Questions

  • What is OOP?
  • What is a class?
  • What is an object?
  • What is a class hierarchy?
  • What is an abstract class and abstract method?
  • What is a static method? Is a class from static methods only an OOP class?
  • What are the features of each of the main types of relations between classes: composition, aggregation, inheritance, association?
  • How is composition different from inheritance?
  • What is polymorphism? What is it used for?
  • What is encapsulation? What problems are solved with its help?
  • What is the state of the program? How does it affect the program?
  • What are side effects?
    • Do I have to deal with side effects when designing in the OOP paradigm?
    • Are mutations a side effect?
  • What are the principles of SOLID? What does each letter of the acronym mean?
  • What is identity? What is the difference from an instance?
  • How are identity implemented through references to values ​​in memory?
  • What are dynamic and static polymorphisms in the context of OOP?
  • How do polymorphism and interfaces allow dependency inversion to be implemented?
  • What are some ways to extend the functionality of a class?
  • What are the challenges of using inheritance?
  • What is delegation?
  • Why does a class define a behavior, not a property? And what about encapsulation?
  • Why is the use of plain old javascript objects not complying with the principle "everything is an object"?

Links

  1. Сайд эффекты
  2. Composition vs inheritance
  3. Наследование vs Композиция vs Агрегация
  4. Uses and Abuses of Inheritance, Part 1
  5. Uses and Abuses of Inheritance, Part 2
  6. Принципы проектирования классов (S.O.L.I.D.)
  7. OTA SOLID (интерактивный ресурс)
  8. SOLID Principles with Uncle Bob - Robert C. Martin
  9. The Principles of OOD (содержит ссылки на статьи по SOLID)