This HTML5 document contains 194 embedded RDF statements represented using HTML+Microdata notation.

The embedded RDF content will be recognized by any processor of HTML5 Microdata.

Namespace Prefixes

PrefixIRI
dbthttp://dbpedia.org/resource/Template:
n39https://www.tomdalling.com/blog/software-design/solid-class-design-the-liskov-substitution-principle/
wikipedia-enhttp://en.wikipedia.org/wiki/
dbrhttp://dbpedia.org/resource/
n23http://reports-archive.adm.cs.cmu.edu/anon/1999/
dbpedia-hehttp://he.dbpedia.org/resource/
n25https://medium.com/@wrong.about/
n10http://commons.wikimedia.org/wiki/Special:FilePath/
dbpedia-frhttp://fr.dbpedia.org/resource/
dcthttp://purl.org/dc/terms/
dbpedia-cshttp://cs.dbpedia.org/resource/
rdfshttp://www.w3.org/2000/01/rdf-schema#
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
n26http://www.engr.mun.ca/~theo/Courses/sd/5895-downloads/
n11http://dbpedia.org/resource/File:
dbphttp://dbpedia.org/property/
n14http://www.objectmentor.com/resources/articles/
xsdhhttp://www.w3.org/2001/XMLSchema#
dbpedia-ukhttp://uk.dbpedia.org/resource/
n41https://web.archive.org/web/20151128004108/http:/www.objectmentor.com/resources/articles/
dbohttp://dbpedia.org/ontology/
dbpedia-pthttp://pt.dbpedia.org/resource/
dbpedia-huhttp://hu.dbpedia.org/resource/
n19https://medium.com/swlh/
dbpedia-jahttp://ja.dbpedia.org/resource/
dbchttp://dbpedia.org/resource/Category:
dbpedia-dehttp://de.dbpedia.org/resource/
dbpedia-plhttp://pl.dbpedia.org/resource/
n30https://www.researchgate.net/publication/
yagohttp://dbpedia.org/class/yago/
dbpedia-ruhttp://ru.dbpedia.org/resource/
wikidatahttp://www.wikidata.org/entity/
dbpedia-nlhttp://nl.dbpedia.org/resource/
yago-reshttp://yago-knowledge.org/resource/
n22https://global.dbpedia.org/id/
dbpedia-ithttp://it.dbpedia.org/resource/
provhttp://www.w3.org/ns/prov#
foafhttp://xmlns.com/foaf/0.1/
dbpedia-zhhttp://zh.dbpedia.org/resource/
dbpedia-kohttp://ko.dbpedia.org/resource/
dbpedia-fahttp://fa.dbpedia.org/resource/
dbpedia-eshttp://es.dbpedia.org/resource/
freebasehttp://rdf.freebase.com/ns/
owlhttp://www.w3.org/2002/07/owl#

Statements

Subject Item
dbr:Behavioral_subtyping
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:List_of_eponymous_laws
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Design_by_contract
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:List_of_female_scientists_in_the_20th_century
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:List_of_important_publications_in_computer_science
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:List_of_pioneers_in_computer_science
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Robert_C._Martin
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Index_of_object-oriented_programming_articles
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Interface_(computing)
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Robustness_principle
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Object-oriented_programming
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Circle–ellipse_problem
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Liskov_Substitution_Principle
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
dbo:wikiPageRedirects
dbr:Liskov_substitution_principle
Subject Item
dbr:Component-based_software_engineering
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Composition_over_inheritance
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Polymorphism_(computer_science)
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Substitution_principle
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
dbo:wikiPageDisambiguates
dbr:Liskov_substitution_principle
Subject Item
dbr:Subsumption
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Barbara_Liskov
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
dbo:knownFor
dbr:Liskov_substitution_principle
Subject Item
dbr:Timeline_of_women_in_computing
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Type_system
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Liskov_substitution_principle
rdf:type
yago:Ability105616246 yago:Know-how105616786 yago:PsychologicalFeature100023100 yago:Abstraction100002137 yago:Idea105833840 yago:WikicatProgrammingPrinciples yago:Method105660268 yago:Content105809192 yago:Generalization105913275 yago:Principle105913538 yago:WikicatFormalMethods yago:Cognition100023271
rdfs:label
Liskov substitution principle 里氏替换原则 Liskovsches Substitutionsprinzip Zasada podstawienia Liskov リスコフの置換原則 Принцип подстановки Барбары Лисков 리스코프 치환 원칙 Princípio da substituição de Liskov Принцип підстановки Лісков Principio de sustitución de Liskov Liskovové princip zastoupení Principio di sostituzione di Liskov Substitutieprincipe van Liskov Principe de substitution de Liskov
rdfs:comment
Принцип заміщення Лісков (англ. Liskov Substitution Principle, LSP) в об'єктно-орієнтованому програмуванні — це спеціальне визначення , запропоноване Барбарою Лісков у 1987 році на конференції у доповіді під назвою "Абстракція даних та ієрархія". У своїй статті Лісков сформулювала свій принцип так: Нехай є властивістю правильною для об'єктів деякого типу . Тоді також має бути правильним для об'єктів типу , де — підтип типу . Принцип Лісков є суворішим за поняття підтипу в теорії типів, яка вимагає тільки: Див. коваріантність і контраваріантність і типи даних. 在面向对象的程序设计中,里氏替换原则(Liskov Substitution principle)是对子类型的特别定义。它由芭芭拉·利斯科夫(Barbara Liskov)在1987年在一次会议上名为“数据的抽象与层次”的演说中首先提出。 里氏替换原则的内容可以描述为:“派生类(子类)对象可以在程式中代替其基类(超类)对象。”以上内容并非利斯科夫的原文,而是译自罗伯特·马丁(Robert Martin)对原文的解读。其原文为: Let be a property provable about objects of type . Then should be true for objects of type where is a subtype of . 芭芭拉·利斯科夫与周以真(Jeannette Wing)在1994年发表论文并提出以上的Liskov代換原則。 Liskovové princip zastoupení (Liskov substitution principle) je princip objektově orientovaného programování, který říká, že pokud v počítačovém programu je S potomkem předka T, potom objekty typu T mohou být nahrazeny objekty typu S (např. objekt typu T lze zastoupit jakýmkoliv objektem potomka S) beze změny jakékoliv potřebné vlastnosti předka T. Liskovové princip zastoupení je formálněji konkrétní definicí vztahu dědění (subtyping) nazvaného (strong) behavioral subtyping, kterou poprvé představila na konferenci v roce 1987 Barbara Liskovová v hlavním příspěvku s názvem Data abstraction and hierarchy. Jedná se spíše o sémantický než syntaktický vztah, protože předpokládá sémantickou zaměnitelnost typů v hierarchii, zejména zaměnitelnost jejich objektů. Barbara Liskov a tento princip v r Het substitutieprincipe van Liskov, ook wel Liskov Substitution Principle (LSP) genoemd, is een principe uit het objectgeoriënteerd programmeren met betrekking tot het overerven. Het principe luidt als volgt: Stel is een aantoonbare eigenschap van de objecten van het type . Dan zou een aantoonbare eigenschap van de objecten van het type moeten zijn, waarbij een subtype is van . Het substitutieprincipe van Liskov werd voorgesteld in 1987 door Barbara Liskov op de conferentie Data abstraction and hierarchy en werd in 1993 geformuleerd. Zasada podstawienia Liskov (ang. Liskov substitution principle) – zasada projektowania w programowaniu obiektowym mówiąca, że: Funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów. Principio de sustitución de Liskov o LSP (Liskov Substitution Principle) es un principio de la programación orientada a objetos.y puede definirse como: Cada clase que hereda de otra puede usarse como su padre sin necesidad de conocer las diferencias entre ellas. Принцип подстановки Барбары Лисков (англ. Liskov Substitution Principle, LSP) в объектно-ориентированном программировании является специфичным определением подтипа, предложенным Барбарой Лисков в 1987 году на конференции в основном докладе под названием Абстракция данных и иерархия. В последующей статье Лисков кратко сформулировала свой принцип следующим образом: Пусть является свойством, верным относительно объектов некоторого типа . Тогда также должно быть верным для объектов типа , где является подтипом типа . Роберт С. Мартин определил этот принцип так: Na programação orientada a objeto, o princípio da substituição de Liskov é uma definição particular para o conceito de . Foi introduzido em 1993 por Barbara Liskov e através de um artigo de nome Family Values: A Behavioral Notion of Subtyping. Para outra definição de subtipo ver tipo de dado. O princípio foi definido de forma resumida como: Se é uma propriedade demonstrável dos objetos de tipo . Então deve ser verdadeiro para objetos de tipo onde é um subtipo de . Nella programmazione orientata agli oggetti il principio di sostituzione di Liskov (Liskov substitution principle) è una particolare definizione di sottotipo, introdotta da Barbara Liskov e nel 1993. La formulazione sintetica del principio è la seguente: "Se è una proprietà che si può dimostrare essere valida per oggetti di tipo , allora deve essere valida per oggetti di tipo dove è un sottotipo di ." Inoltre il principio non ammette la presenza di eccezioni più ampie nelle sottoclassi. リスコフの置換原則(りすこふのちかんげんそく、英: Liskov substitution principle)は、オブジェクト指向プログラミングにおいて、サブタイプのオブジェクトはスーパータイプのオブジェクトの仕様に従わなければならない、という原則である。リスコフの置換原則を満たすサブタイプを と呼ぶ。 リスコフの置換原則の概念は最初、1987年10月のOOPSLAでのバーバラ・リスコフの基調講演 “Data abstraction and hierarchy”にて、インフォーマルな形で紹介された。より形式的な定義は1994年のリスコフとの共著論文 “A Behavioral Notion of Subtyping” で与えられた。 Le principe de substitution de Liskov (LSP) est, en programmation orientée objet, une définition particulière de la notion de sous-type. Il a été formulé par Barbara Liskov et Jeannette Wing dans un article intitulé Family Values: A Behavioral Notion of Subtyping : Liskov et Wing en ont proposé la formulation condensée suivante : Si est une propriété démontrable pour tout objet de type , alors est vraie pour tout objet de type tel que est un sous-type de . 치환성(영어: substitutability)은 객체 지향 프로그래밍 원칙이다. 컴퓨터 프로그램에서 자료형 가 자료형 의 서브타입라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 의 객체를 자료형 의 객체로 교체(치환)할 수 있어야 한다는 원칙이다. 리스코프 치환 원칙(영어: Liskov substitution principle, LSP)은 바바라 리스코프가 자료 추상화와 계층 (Data abstraction and hierarchy)이라는 제목으로 기조연설을 한 1987년 컨퍼런스에서 처음 소개한 내용으로, 이 원칙을 엄밀한 용어로 말하자면 (강한) 행동적 하위형화라 부르는 하위형화 관계의 특정한 사례이다. 이 정의는 1994년 논문에서 다음 원칙을 만들어낸 자료형의 의미론적 상호처리를 보장하기 때문에 단순한 문법적 관계일 뿐만 아니라 의미론적 관계다. 를 자료형 의 객체 에 대해 증명할 수 있는 속성이라 하자. 그렇다면 가 의 하위형이라면 는 자료형 의 객체 에 대해 증명할 수 있어야 한다. The Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called strong behavioral subtyping, that was initially introduced by Barbara Liskov in a 1988 conference keynote address titled Data abstraction and hierarchy. It is based on the concept of "substitutability" – a principle in object-oriented programming stating that an object (such as a class) may be replaced by a sub-object (such as a class that extends the first class) without breaking the program. It is a semantic rather than merely syntactic relation, because it intends to guarantee semantic interoperability of types in a hierarchy, object types in particular. Barbara Liskov and Jeannette Wing described the principle succinctly in a 1994 paper as follows: Das Liskovsche Substitutionsprinzip (LSP) oder Ersetzbarkeitsprinzip ist ein Kriterium in der objektorientierten Programmierung, das die Bedingungen zur Modellierung eines Datentyps für seinen Untertyp angibt. Es besagt, dass ein Programm, das Objekte einer Basisklasse T verwendet, auch mit Objekten der davon abgeleiteten Klasse S korrekt funktionieren muss, ohne dabei das Programm zu verändern. Sei eine beweisbare Eigenschaft von Objekten des Typs . Dann soll für Objekte des Typs wahr sein, wobei ein Untertyp von ist.“
foaf:depiction
n10:Barbara_Liskov_MIT_computer_scientist_2010.jpg
dct:subject
dbc:Formal_methods dbc:Programming_principles dbc:Type_theory dbc:Programming_language_semantics dbc:Object-oriented_programming
dbo:wikiPageID
300568
dbo:wikiPageRevisionID
1115990919
dbo:wikiPageWikiLink
dbr:Covariance_and_contravariance_(computer_science) dbr:Type_theory dbr:Object_(computer_science) dbr:Halting_problem dbr:Object-oriented_programming dbr:Composition_over_inheritance n11:Barbara_Liskov_MIT_computer_scientist_2010.jpg dbr:Subtyping dbc:Formal_methods dbc:Programming_principles dbc:Type_theory dbr:Subtyping_of_functions dbr:Class_(computer_programming) dbr:Behavioral_subtyping dbr:Barbara_Liskov dbr:Bertrand_Meyer dbr:Data_type dbr:Inheritance_(computer_science) dbr:Postcondition dbr:Precondition dbr:Aliasing_(computing) dbr:Encapsulation_(computer_science) dbr:Correctness_(computer_science) dbr:Jeannette_Wing dbr:Object-Oriented_Software_Construction dbr:SOLID_(object-oriented_design) dbr:ACM_Transactions_on_Programming_Languages_and_Systems dbc:Programming_language_semantics dbr:Proof-theoretic dbr:Referential_transparency dbr:Hoare_logic dbr:Undecidable_problem dbr:Formal_semantics_of_programming_languages dbr:Program_refinement dbr:Design_by_contract dbr:Keynote dbr:Invariant_(computer_science) dbc:Object-oriented_programming dbr:Type_signature
dbo:wikiPageExternalLink
n14:lsp.pdf n19:lsp-liskov-substitution-principle-24311d1f854 n23:CMU-CS-99-156.ps%7Ctitle=Behavioral n25:liskov-substitution-principle-a982551d584a n26:sd-principles-3.ppt.pdf n30:323457799 n39: n41:lsp.pdf
owl:sameAs
dbpedia-ja:リスコフの置換原則 freebase:m.01rvbk dbpedia-ko:리스코프_치환_원칙 dbpedia-fr:Principe_de_substitution_de_Liskov dbpedia-nl:Substitutieprincipe_van_Liskov n22:56bWj yago-res:Liskov_substitution_principle dbpedia-pl:Zasada_podstawienia_Liskov dbpedia-es:Principio_de_sustitución_de_Liskov dbpedia-pt:Princípio_da_substituição_de_Liskov dbpedia-hu:Liskov-féle_behelyettesítési_alapelv dbpedia-fa:قاعده_جانشانی_لیسکوف dbpedia-he:עקרון_ההחלפה_של_ליסקוב dbpedia-ru:Принцип_подстановки_Барбары_Лисков dbpedia-uk:Принцип_підстановки_Лісков dbpedia-it:Principio_di_sostituzione_di_Liskov dbpedia-de:Liskovsches_Substitutionsprinzip wikidata:Q957386 dbpedia-cs:Liskovové_princip_zastoupení dbpedia-zh:里氏替换原则
dbp:wikiPageUsesTemplate
dbt:Cite_techreport dbt:More_footnotes dbt:Redirect dbt:Refend dbt:Reflist dbt:Refbegin dbt:Cite_conference dbt:Cite_book dbt:Cite_web dbt:Cite_journal dbt:Solid_principles dbt:Short_description dbt:Citation_needed dbt:Tmath dbt:Endash dbt:Math
dbo:thumbnail
n10:Barbara_Liskov_MIT_computer_scientist_2010.jpg?width=300
dbo:abstract
The Liskov substitution principle (LSP) is a particular definition of a subtyping relation, called strong behavioral subtyping, that was initially introduced by Barbara Liskov in a 1988 conference keynote address titled Data abstraction and hierarchy. It is based on the concept of "substitutability" – a principle in object-oriented programming stating that an object (such as a class) may be replaced by a sub-object (such as a class that extends the first class) without breaking the program. It is a semantic rather than merely syntactic relation, because it intends to guarantee semantic interoperability of types in a hierarchy, object types in particular. Barbara Liskov and Jeannette Wing described the principle succinctly in a 1994 paper as follows: Subtype Requirement: Let be a property provable about objects of type T. Then should be true for objects of type S where S is a subtype of T. Symbolically: That is, if S subtypes T, what holds for T-objects holds for S-objects.In the same paper, Liskov and Wing detailed their notion of behavioral subtyping in an extension of Hoare logic, which bears a certain resemblance to Bertrand Meyer's design by contract in that it considers the interaction of subtyping with preconditions, postconditions and invariants. Le principe de substitution de Liskov (LSP) est, en programmation orientée objet, une définition particulière de la notion de sous-type. Il a été formulé par Barbara Liskov et Jeannette Wing dans un article intitulé Family Values: A Behavioral Notion of Subtyping : Liskov et Wing en ont proposé la formulation condensée suivante : Si est une propriété démontrable pour tout objet de type , alors est vraie pour tout objet de type tel que est un sous-type de . Принцип заміщення Лісков (англ. Liskov Substitution Principle, LSP) в об'єктно-орієнтованому програмуванні — це спеціальне визначення , запропоноване Барбарою Лісков у 1987 році на конференції у доповіді під назвою "Абстракція даних та ієрархія". У своїй статті Лісков сформулювала свій принцип так: Нехай є властивістю правильною для об'єктів деякого типу . Тоді також має бути правильним для об'єктів типу , де — підтип типу . Таким чином ідея Лісков про «підтип» визначає поняття заміщення — якщо S підтип T, тоді об'єкти типу T в програмі можуть бути заміщені об'єктами типу S без будь-яких змін бажаних властивостей цієї програми (наприклад, ). Цей принцип — найважливіший критерій для оцінки якості ухвалених рішень при побудові ієрархій успадкування. Сформулювати його можна у вигляді простого правила: тип S буде підтипом Т тоді і тільки тоді, коли кожному об'єктові o1 типу S відповідає певний об'єкт o2 типу T таким чином, що для всіх програм P, реалізованих в термінах T, поведінка P не зміниться, якщо o2 замінити на o1. Принцип Лісков є суворішим за поняття підтипу в теорії типів, яка вимагає тільки: * коваріантність методів за типом результату; * контраваріантність методів за типами аргументів; * заборону в методах підтипу викиду винятків, які не є похідними від типів винятків, що викидаються методами базового типу. Див. коваріантність і контраваріантність і типи даних. Das Liskovsche Substitutionsprinzip (LSP) oder Ersetzbarkeitsprinzip ist ein Kriterium in der objektorientierten Programmierung, das die Bedingungen zur Modellierung eines Datentyps für seinen Untertyp angibt. Es besagt, dass ein Programm, das Objekte einer Basisklasse T verwendet, auch mit Objekten der davon abgeleiteten Klasse S korrekt funktionieren muss, ohne dabei das Programm zu verändern. Das Liskovsche Substitutionsprinzip wurde erstmals 1987 von Barbara Liskov auf einer Konferenz Data abstraction and hierarchy vorgestellt und wurde 1993 von Barbara Liskov und Jeannette Wing formuliert. In einem nachfolgenden Artikel wurde es folgendermaßen formuliert (Übersetzung): „Eine stärkere Forderung [als Kovarianz und Kontravarianz] wird benötigt, die das Verhalten von Untertypen einschränkt: Eigenschaften, die anhand der Spezifikation des vermeintlichen Typs eines Objektes bewiesen werden können, sollten auch dann gelten, wenn das Objekt einem Untertyp dieses Typs angehört: Sei eine beweisbare Eigenschaft von Objekten des Typs . Dann soll für Objekte des Typs wahr sein, wobei ein Untertyp von ist.“ Damit ist garantiert, dass Operationen, die auf ein Objekt des Typs vom Typ angewendet werden, auch korrekt ausgeführt werden. In einigen der heute üblichen Programmiersprachen, die Polymorphie unterstützen, kann dieses Prinzip durch Vererbung von mehr als einem Objekt auf ein anderes verletzt werden. Dann ließe sich nicht stets bedenkenlos ein Objekt vom Typ durch ein Objekt vom Typ ersetzen. Bezogen auf einzelne Methoden bedeutet das Liskovsche Substitutionsprinzip, dass beim Überschreiben einer Methode durch eine abgeleitete Klasse die Vorbedingungen nur abgeschwächt und die Nachbedingungen nur verstärkt werden dürfen (siehe Design by Contract). Na programação orientada a objeto, o princípio da substituição de Liskov é uma definição particular para o conceito de . Foi introduzido em 1993 por Barbara Liskov e através de um artigo de nome Family Values: A Behavioral Notion of Subtyping. Para outra definição de subtipo ver tipo de dado. O princípio foi definido de forma resumida como: Se é uma propriedade demonstrável dos objetos de tipo . Então deve ser verdadeiro para objetos de tipo onde é um subtipo de . Portanto, a visão de "subtipo" defendida por Liskov e Wing é baseada na noção da substituição; isto é, se S é um subtipo de T, então os objetos do tipo T, em um programa, podem ser substituídos pelos objetos de tipo S sem que seja necessário alterar as propriedades deste programa. Liskovové princip zastoupení (Liskov substitution principle) je princip objektově orientovaného programování, který říká, že pokud v počítačovém programu je S potomkem předka T, potom objekty typu T mohou být nahrazeny objekty typu S (např. objekt typu T lze zastoupit jakýmkoliv objektem potomka S) beze změny jakékoliv potřebné vlastnosti předka T. Liskovové princip zastoupení je formálněji konkrétní definicí vztahu dědění (subtyping) nazvaného (strong) behavioral subtyping, kterou poprvé představila na konferenci v roce 1987 Barbara Liskovová v hlavním příspěvku s názvem Data abstraction and hierarchy. Jedná se spíše o sémantický než syntaktický vztah, protože předpokládá sémantickou zaměnitelnost typů v hierarchii, zejména zaměnitelnost jejich objektů. Barbara Liskov a tento princip v roce 1994 stručně formulovali takto: Podmínka na potomka: Nechť je vlastnost prokazatelná objektu typu . Potom jsou pravdivé pro objekty typu , kde je potomkem . Principio de sustitución de Liskov o LSP (Liskov Substitution Principle) es un principio de la programación orientada a objetos.y puede definirse como: Cada clase que hereda de otra puede usarse como su padre sin necesidad de conocer las diferencias entre ellas. 치환성(영어: substitutability)은 객체 지향 프로그래밍 원칙이다. 컴퓨터 프로그램에서 자료형 가 자료형 의 서브타입라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 의 객체를 자료형 의 객체로 교체(치환)할 수 있어야 한다는 원칙이다. 리스코프 치환 원칙(영어: Liskov substitution principle, LSP)은 바바라 리스코프가 자료 추상화와 계층 (Data abstraction and hierarchy)이라는 제목으로 기조연설을 한 1987년 컨퍼런스에서 처음 소개한 내용으로, 이 원칙을 엄밀한 용어로 말하자면 (강한) 행동적 하위형화라 부르는 하위형화 관계의 특정한 사례이다. 이 정의는 1994년 논문에서 다음 원칙을 만들어낸 자료형의 의미론적 상호처리를 보장하기 때문에 단순한 문법적 관계일 뿐만 아니라 의미론적 관계다. 를 자료형 의 객체 에 대해 증명할 수 있는 속성이라 하자. 그렇다면 가 의 하위형이라면 는 자료형 의 객체 에 대해 증명할 수 있어야 한다. 같은 논문에서 리스코프와 윙은 사전 및 사후 조건으로 하위형화의 상호 작용을 고려함으로써 행동 하위형화 개념을 베르트랑 메이어의 계약에 의한 설계와 분명한 유사성을 지닌 호어 논리의 확장으로 자세히 설명한다. Nella programmazione orientata agli oggetti il principio di sostituzione di Liskov (Liskov substitution principle) è una particolare definizione di sottotipo, introdotta da Barbara Liskov e nel 1993. La formulazione sintetica del principio è la seguente: "Se è una proprietà che si può dimostrare essere valida per oggetti di tipo , allora deve essere valida per oggetti di tipo dove è un sottotipo di ." Questa nozione di sottotipo è quindi basata sulla nozione di sostituibilità secondo cui, se S è un sottotipo di T, allora oggetti dichiarati in un programma di tipo T possono essere sostituiti con oggetti di tipo S senza alterare la correttezza dei risultati del programma. Nella metodologia di programmazione chiamata progettazione per contratto (Design by contract), questo principio pone alcuni vincoli sulle modalità con cui i contratti possono interagire con l'ereditarietà: * i prerequisiti richiesti ad una superclasse devono essere almeno altrettanto vincolanti di quelli richiesti alle sottoclassi; * le postcondizioni e gli invarianti in una sottoclasse devono essere almeno altrettanto vincolanti di quelle delle sue superclassi. Inoltre il principio non ammette la presenza di eccezioni più ampie nelle sottoclassi. 在面向对象的程序设计中,里氏替换原则(Liskov Substitution principle)是对子类型的特别定义。它由芭芭拉·利斯科夫(Barbara Liskov)在1987年在一次会议上名为“数据的抽象与层次”的演说中首先提出。 里氏替换原则的内容可以描述为:“派生类(子类)对象可以在程式中代替其基类(超类)对象。”以上内容并非利斯科夫的原文,而是译自罗伯特·马丁(Robert Martin)对原文的解读。其原文为: Let be a property provable about objects of type . Then should be true for objects of type where is a subtype of . 芭芭拉·利斯科夫与周以真(Jeannette Wing)在1994年发表论文并提出以上的Liskov代換原則。 Принцип подстановки Барбары Лисков (англ. Liskov Substitution Principle, LSP) в объектно-ориентированном программировании является специфичным определением подтипа, предложенным Барбарой Лисков в 1987 году на конференции в основном докладе под названием Абстракция данных и иерархия. В последующей статье Лисков кратко сформулировала свой принцип следующим образом: Пусть является свойством, верным относительно объектов некоторого типа . Тогда также должно быть верным для объектов типа , где является подтипом типа . Роберт С. Мартин определил этот принцип так: Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом. Таким образом, идея Лисков о «подтипе» даёт определение понятия замещения — если S является подтипом T, тогда объекты типа T в программе могут быть замещены объектами типа S без каких-либо изменений желательных свойств этой программы (например, корректность). Этот принцип является важнейшим критерием для оценки качества принимаемых решений при построении иерархий наследования. Сформулировать его можно в виде простого правила: тип S будет подтипом Т тогда и только тогда, когда каждому объекту oS типа S соответствует некий объект oT типа T таким образом, что для всех программ P, реализованных в терминах T, поведение P не будет меняться, если oT заменить на oS. Более простыми словами можно сказать, что поведение наследующих классов не должно противоречить поведению, заданному базовым классом, то есть поведение наследующих классов должно быть ожидаемым для кода, использующего переменную базового типа. Саттер и Александреску в своём руководстве по использованию C++ для выражения этого принципа также используют фразу «подкласс не должен требовать от вызывающего кода больше, чем базовый класс, и не должен предоставлять вызывающему коду меньше, чем базовый класс». По мнению данных авторов, публичное наследование в C++ можно употреблять только тогда, когда оно удовлетворяет принципу Лисков. Приватное наследование, по их же мнению, дозволено использовать для доступа к protected части базы и перекрытия виртуальных методов. В любом же ином случае, то есть для всего лишь повторного использования кода из базы, наследование применять нельзя. Основания: использование публичного наследования для повторного использования кода приводит к тому, что внешний мир начинает считать класс Derived разновидностью класса Base, и возможно появление кода, явно использующего этот факт. Это сильно сужает простор для манёвра архитектора в дальнейшем поддержании и рефакторинге класса Derived. リスコフの置換原則(りすこふのちかんげんそく、英: Liskov substitution principle)は、オブジェクト指向プログラミングにおいて、サブタイプのオブジェクトはスーパータイプのオブジェクトの仕様に従わなければならない、という原則である。リスコフの置換原則を満たすサブタイプを と呼ぶ。 リスコフの置換原則の概念は最初、1987年10月のOOPSLAでのバーバラ・リスコフの基調講演 “Data abstraction and hierarchy”にて、インフォーマルな形で紹介された。より形式的な定義は1994年のリスコフとの共著論文 “A Behavioral Notion of Subtyping” で与えられた。 Zasada podstawienia Liskov (ang. Liskov substitution principle) – zasada projektowania w programowaniu obiektowym mówiąca, że: Funkcje które używają wskaźników lub referencji do klas bazowych, muszą być w stanie używać również obiektów klas dziedziczących po klasach bazowych, bez dokładnej znajomości tych obiektów. Inaczej mówiąc, klasa dziedzicząca powinna tylko rozszerzać możliwości klasy bazowej i w pewnym sensie nie zmieniać tego, co ona robiła już wcześniej. Mówiąc jeszcze inaczej — jeśli będziemy tworzyć egzemplarz klasy potomnej, to niezależnie od tego, co znajdzie się we wskaźniku na zmienną, wywoływanie metody, którą pierwotnie zdefiniowano w klasie bazowej, powinno dać te same rezultaty. Zasada została sformułowana po raz pierwszy przez Barbarę Liskov w książce Data Abstraction and Hierarchy, a spopularyzowana i podana w obecnym brzmieniu przez w artykule "Principles of Object Oriented Design" oraz książce "Agile Software Development: Principles, Patterns, and Practices" Het substitutieprincipe van Liskov, ook wel Liskov Substitution Principle (LSP) genoemd, is een principe uit het objectgeoriënteerd programmeren met betrekking tot het overerven. Het principe luidt als volgt: Stel is een aantoonbare eigenschap van de objecten van het type . Dan zou een aantoonbare eigenschap van de objecten van het type moeten zijn, waarbij een subtype is van . Dit principe houdt in dat als de basisklasse T gebruikt wordt in een programma, het programma ook correct dient te werken met alle specifieke implementaties van T, zonder wijzigingen in het programma te hoeven maken. Het substitutieprincipe van Liskov werd voorgesteld in 1987 door Barbara Liskov op de conferentie Data abstraction and hierarchy en werd in 1993 geformuleerd.
prov:wasDerivedFrom
wikipedia-en:Liskov_substitution_principle?oldid=1115990919&ns=0
dbo:wikiPageLength
12775
foaf:isPrimaryTopicOf
wikipedia-en:Liskov_substitution_principle
Subject Item
dbr:Abstract_data_type
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:History_of_computing
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Object_composition
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Is-a
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Jeannette_Wing
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Covariance_and_contravariance_(computer_science)
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Covariant_return_type
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Code_smell
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Referential_transparency
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Class-based_programming
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Inheritance_(object-oriented_programming)
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Many-sorted_logic
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:LSP
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
dbo:wikiPageDisambiguates
dbr:Liskov_substitution_principle
Subject Item
dbr:Subtyping
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:SOLID
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
Subject Item
dbr:Liskov_substitution
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
dbo:wikiPageRedirects
dbr:Liskov_substitution_principle
Subject Item
dbr:Substitutability
dbo:wikiPageWikiLink
dbr:Liskov_substitution_principle
dbo:wikiPageRedirects
dbr:Liskov_substitution_principle
Subject Item
wikipedia-en:Liskov_substitution_principle
foaf:primaryTopic
dbr:Liskov_substitution_principle