Fragile base class (original) (raw)

Property Value
dbo:abstract Das Fragile Base Class Problem (FBC) ist ein Fehlverhalten von Software, das bei der objektorientierten Softwareentwicklung beim Versionswechsel der eingesetzten Basissoftware auftreten kann und mit dem Vererbungsmechanismus zusammenhängt. Es kann auftreten, wenn diese Technik der Objektorientierung als Implementierungsvererbung zur Wiederverwendung von Quelltext eingesetzt wird. Die Entwickler einer „zerbrechlichen“ Basisklasse, die keine genaue und vollständige Kenntnis über die Nutzung ihrer Implementierungen haben können, sind bei einer Änderung nicht in der Lage, die negativen Konsequenzen vorauszuahnen, die sich für spezialisierende Klassen hieraus ergeben. Die Gründe hierfür sind vielfältig, im Wesentlichen liegt ein Missverständnis zwischen den Entwicklern der Basisklasse und denen der verwendenden Spezialisierungen vor. Dies liegt zumeist daran, dass die Funktionalität der Basisklasse und auch das von den Spezialisierungen erwartete Verhalten nicht ausreichend präzise spezifiziert sind. (de) The fragile base class problem 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. The programmer cannot determine whether a base class change is safe simply by examining in isolation the methods of the base class. One possible solution is to make instance variables private to their defining class and force subclasses to use accessors to modify superclass states. A language could also make it so that subclasses can control which inherited methods are exposed publicly. These changes prevent subclasses from relying on implementation details of superclasses and allow subclasses to expose only those superclass methods that are applicable to themselves. Another alternative solution could be to have an interface instead of superclass. The fragile base class problem has been blamed on open recursion (dynamic dispatch of methods on this), with the suggestion that invoking methods on this default to closed recursion (static dispatch, early binding) rather than open recursion (dynamic dispatch, late binding), only using open recursion when it is specifically requested; external calls (not using this) would be dynamically dispatched as usual. (en) Хрупкий базовый класс — фундаментальная проблема объектно-ориентированного программирования. (ru)
dbo:wikiPageExternalLink https://www.infoworld.com/article/2073649/why-extends-is-evil.html http://www.cas.mcmaster.ca/~emil/Publications_files/MikhajlovSekerinski98FragileBaseClassProblem.pdf
dbo:wikiPageID 316681 (xsd:integer)
dbo:wikiPageLength 6787 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1107383374 (xsd:integer)
dbo:wikiPageWikiLink dbr:Scala_(programming_language) dbr:Joshua_Bloch dbr:Julia_(programming_language) dbr:Interface_(object-oriented_programming) dbr:Component_Pascal dbr:Object-oriented_programming dbr:Subclass_(computer_science) dbr:Stack_overflow dbr:C++ dbr:C_Sharp_(programming_language) dbr:Lecture_Notes_in_Computer_Science dbr:D_(programming_language) dbr:Fragile_binary_interface_problem dbr:Java_(programming_language) dbr:Java_programming_language dbc:Class_(computer_programming) dbr:Superclass_(computer_science) dbr:Inheritance_(object-oriented_programming) dbr:Kotlin_(programming_language) dbr:Objective-C dbr:Open_recursion dbr:Software_brittleness dbr:Multiple_dispatch dbr:JavaWorld dbr:Virtual_inheritance dbr:VB.NET dbr:Implementation_inheritance dbr:Infinite_recursion dbr:Inheritance_semantics
dbp:wikiPageUsesTemplate dbt:About dbt:Cite_conference dbt:Cite_web dbt:More_footnotes dbt:Reflist dbt:Short_description dbt:QID
dct:subject dbc:Class_(computer_programming)
gold:hypernym dbr:Problem
rdf:type dbo:Disease
rdfs:comment Хрупкий базовый класс — фундаментальная проблема объектно-ориентированного программирования. (ru) The fragile base class problem 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. The programmer cannot determine whether a base class change is safe simply by examining in isolation the methods of the base class. Another alternative solution could be to have an interface instead of superclass. (en) Das Fragile Base Class Problem (FBC) ist ein Fehlverhalten von Software, das bei der objektorientierten Softwareentwicklung beim Versionswechsel der eingesetzten Basissoftware auftreten kann und mit dem Vererbungsmechanismus zusammenhängt. Es kann auftreten, wenn diese Technik der Objektorientierung als Implementierungsvererbung zur Wiederverwendung von Quelltext eingesetzt wird. (de)
rdfs:label Fragile Base Class Problem (de) Fragile base class (en) Хрупкий базовый класс (ru)
owl:sameAs freebase:Fragile base class wikidata:Fragile base class dbpedia-de:Fragile base class dbpedia-ru:Fragile base class https://global.dbpedia.org/id/Smph
prov:wasDerivedFrom wikipedia-en:Fragile_base_class?oldid=1107383374&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Fragile_base_class
is dbo:wikiPageDisambiguates of dbr:FBC
is dbo:wikiPageRedirects of dbr:Brittle_base_class dbr:Fragile_base_class_problem
is dbo:wikiPageWikiLink of dbr:FBC dbr:Non-virtual_interface_pattern dbr:Index_of_object-oriented_programming_articles dbr:Glossary_of_computer_science dbr:Forwarding_(object-oriented_programming) dbr:Fragile_binary_interface_problem dbr:This_(computer_programming) dbr:Inheritance_(object-oriented_programming) dbr:Brittle_base_class dbr:IBM_System_Object_Model dbr:NPAPI dbr:Fragile_base_class_problem
is foaf:primaryTopic of wikipedia-en:Fragile_base_class