<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.karljones.com/index.php?action=history&amp;feed=atom&amp;title=Circle-ellipse_problem</id>
		<title>Circle-ellipse problem - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.karljones.com/index.php?action=history&amp;feed=atom&amp;title=Circle-ellipse_problem"/>
		<link rel="alternate" type="text/html" href="http://wiki.karljones.com/index.php?title=Circle-ellipse_problem&amp;action=history"/>
		<updated>2026-10-23T15:07:20Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>http://wiki.karljones.com/index.php?title=Circle-ellipse_problem&amp;diff=17755&amp;oldid=prev</id>
		<title>Karl Jones: Created page with &quot;In software development, the '''circle-ellipse problem''' (sometimes termed the square-rectangle problem) illustrates several pitfalls which can arise when using Subtypi...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.karljones.com/index.php?title=Circle-ellipse_problem&amp;diff=17755&amp;oldid=prev"/>
				<updated>2016-09-04T15:21:13Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;In &lt;a href=&quot;/index.php/Software_development&quot; title=&quot;Software development&quot;&gt;software development&lt;/a&gt;, the &amp;#039;&amp;#039;&amp;#039;circle-ellipse problem&amp;#039;&amp;#039;&amp;#039; (sometimes termed the square-rectangle problem) illustrates several pitfalls which can arise when using Subtypi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In [[software development]], the '''circle-ellipse problem''' (sometimes termed the square-rectangle problem) illustrates several pitfalls which can arise when using [[Subtyping|subtype polymorphism]] in [[Object model|object modelling]].&lt;br /&gt;
&lt;br /&gt;
The issues are most commonly encountered when using [[object-oriented programming]] (OOP). &lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
By definition, this problem is a violation of the [[Liskov substitution principle]], which occurs in the term single responsibility, open-closed, Liskov substitution, interface segregation and dependency inversion ([[SOLID (object-oriented design)|SOLID]]).&lt;br /&gt;
&lt;br /&gt;
The problem concerns which subtyping or [[Inheritance (object-oriented programming)|inheritance]] relationship should exist between classes which represent circles and ellipses (or, similarly, squares and rectangles).&lt;br /&gt;
&lt;br /&gt;
More generally, the problem illustrates the difficulties which can occur when a base class contains [[Method (computer programming)|methods]] which mutate an object in a manner which may invalidate a (stronger) invariant found in a derived class, causing the Liskov substitution principle to be violated.&lt;br /&gt;
&lt;br /&gt;
The existence of the circle-ellipse problem is sometimes used to criticize object-oriented programming. It may also imply that hierarchical taxonomies are difficult to make universal, implying that situational classification systems may be more practical.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Inheritance (object-oriented programming)]]&lt;br /&gt;
* [[Liskov substitution principle]]&lt;br /&gt;
* [[Method (computer programming)]]&lt;br /&gt;
* [[Object model]]&lt;br /&gt;
* [[SOLID (object-oriented design)]]&lt;br /&gt;
* [[Subtyping]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Circle-ellipse_problem Circle-ellipse problem] @ Wikipedia.org &lt;br /&gt;
&lt;br /&gt;
[[Category:Computer programming]]&lt;br /&gt;
[[Category:Computer science]]&lt;br /&gt;
[[Category:Computing]]&lt;/div&gt;</summary>
		<author><name>Karl Jones</name></author>	</entry>

	</feed>