<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Extending using Wrapping</title>
	<atom:link href="http://blog.affien.com/archives/2005/04/30/extending-using-wrapping/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.affien.com/archives/2005/04/30/extending-using-wrapping/</link>
	<description>A few thoughts</description>
	<lastBuildDate>Tue, 22 Nov 2011 21:50:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Bas Westerbaan</title>
		<link>http://blog.affien.com/archives/2005/04/30/extending-using-wrapping/comment-page-1/#comment-593</link>
		<dc:creator>Bas Westerbaan</dc:creator>
		<pubDate>Sat, 30 Apr 2005 19:35:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/04/30/extending-using-wrapping/#comment-593</guid>
		<description>When letting it evolve you would inherit it... a wrapper merely is a layer on top to handle...

lets say to got a computer object.. then you matbe could add a new keyboard with a lot of new shortcuts but without changing something to the computer.. in other words you will never ovveride anything.. you just extend..

For it basicly can&#039;t override anything it basicly creates a different new interface to interact with the object where it also is able to get to the protected members, it is basicly a wrapper :p.</description>
		<content:encoded><![CDATA[<p>When letting it evolve you would inherit it&#8230; a wrapper merely is a layer on top to handle&#8230;</p>
<p>lets say to got a computer object.. then you matbe could add a new keyboard with a lot of new shortcuts but without changing something to the computer.. in other words you will never ovveride anything.. you just extend..</p>
<p>For it basicly can&#8217;t override anything it basicly creates a different new interface to interact with the object where it also is able to get to the protected members, it is basicly a wrapper :p.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Duursma</title>
		<link>http://blog.affien.com/archives/2005/04/30/extending-using-wrapping/comment-page-1/#comment-590</link>
		<dc:creator>Jacob Duursma</dc:creator>
		<pubDate>Sat, 30 Apr 2005 13:24:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/04/30/extending-using-wrapping/#comment-590</guid>
		<description>I suppose you would only be able to add more methods/functions, basicly extending objects. 

Have you thought about downcasting objects where the downcast actually has more properties? I realize that this might be slightly difficult and would probably require specific invariants to keep it all going.

To illustrate, you would have a object of say type fish. which just has basic properties and methods of a fish. Now you could downcast (upgrade it? maybe we should call it &#039;evolve&#039;) it to a cod fish where all sorts of extra properties and methods are defined. The codfish object would be initialised with the fish object. 

Maybe it is better illustrated with shapes. Say you have a object of type &#039;shape&#039; which is a high abstract type object. Now you really need a cube, could you &#039;evolve&#039; the shape into a &#039;cube&#039;. Depending on the properties of the shape, the answer might be yes or no. Or you might have to change the shape in order to &#039;evolve&#039; it into a cube. </description>
		<content:encoded><![CDATA[<p>I suppose you would only be able to add more methods/functions, basicly extending objects. </p>
<p>Have you thought about downcasting objects where the downcast actually has more properties? I realize that this might be slightly difficult and would probably require specific invariants to keep it all going.</p>
<p>To illustrate, you would have a object of say type fish. which just has basic properties and methods of a fish. Now you could downcast (upgrade it? maybe we should call it &#8216;evolve&#8217;) it to a cod fish where all sorts of extra properties and methods are defined. The codfish object would be initialised with the fish object. </p>
<p>Maybe it is better illustrated with shapes. Say you have a object of type &#8216;shape&#8217; which is a high abstract type object. Now you really need a cube, could you &#8216;evolve&#8217; the shape into a &#8216;cube&#8217;. Depending on the properties of the shape, the answer might be yes or no. Or you might have to change the shape in order to &#8216;evolve&#8217; it into a cube.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bas Westerbaan</title>
		<link>http://blog.affien.com/archives/2005/04/30/extending-using-wrapping/comment-page-1/#comment-589</link>
		<dc:creator>Bas Westerbaan</dc:creator>
		<pubDate>Sat, 30 Apr 2005 07:58:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/04/30/extending-using-wrapping/#comment-589</guid>
		<description>When you got object a and b where b is an inheritance of a you can treat an instance of b as a. But you can&#039;t treat an instance of a as b.

edited post... guess i was to vague

Also the way it would be implemented would be totaly different.. more like a wrapper instead of its own instance i guess</description>
		<content:encoded><![CDATA[<p>When you got object a and b where b is an inheritance of a you can treat an instance of b as a. But you can&#8217;t treat an instance of a as b.</p>
<p>edited post&#8230; guess i was to vague</p>
<p>Also the way it would be implemented would be totaly different.. more like a wrapper instead of its own instance i guess</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zef Hemel</title>
		<link>http://blog.affien.com/archives/2005/04/30/extending-using-wrapping/comment-page-1/#comment-588</link>
		<dc:creator>Zef Hemel</dc:creator>
		<pubDate>Sat, 30 Apr 2005 06:44:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.w-nz.com/archives/2005/04/30/extending-using-wrapping/#comment-588</guid>
		<description>I really don&#039;t see the difference between normal inheritance and your wrapper. Could you explain it once more? Inheritance working up and not down doesn&#039;t make sense to me.</description>
		<content:encoded><![CDATA[<p>I really don&#8217;t see the difference between normal inheritance and your wrapper. Could you explain it once more? Inheritance working up and not down doesn&#8217;t make sense to me.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

