Construction idioms: Difference between revisions

From John's wiki
Jump to navigation Jump to search
(Created page with "So here's three programs which demonstrate how I would go about evolving some code including a class called MyThing. The initial implementation would be very direct and very c...")
 
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
So here's three programs which demonstrate how I would go about evolving some code including a class called MyThing. The initial implementation would be very direct and very concrete, the next implementation would factor out an interface, and the final implementation would implement MyThing in a full-blown extensible framework.
So here's three complete programs which demonstrate how I would go about evolving some code including a main component called MyThing. The initial implementation would be very direct and very concrete, the next implementation would factor out an interface, and the final implementation would implement MyThing in a full-blown extensible framework. All versions support construction via a MyThing.Create() factory method, thus "construction idioms".


* [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-0.cs Take Zero]
{|class="wikitable"
* [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-1.cs Take One]
! Example program
* [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-2.cs Take Two]
! Note
|-
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-0.cs Take Zero]
| concrete implementation
|-
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-1.cs Take One]
| introduce interface
|-
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-2.cs Take Two]
| extensible framework
|}
 
If you want a copy of the code:
 
<nowiki>svn co https://svn.jj5.net/svn/public/jjrepo/exp/2017-11-23-000609 .</nowiki>

Latest revision as of 23:12, 24 November 2017

So here's three complete programs which demonstrate how I would go about evolving some code including a main component called MyThing. The initial implementation would be very direct and very concrete, the next implementation would factor out an interface, and the final implementation would implement MyThing in a full-blown extensible framework. All versions support construction via a MyThing.Create() factory method, thus "construction idioms".

Example program Note
Take Zero concrete implementation
Take One introduce interface
Take Two extensible framework

If you want a copy of the code:

svn co https://svn.jj5.net/svn/public/jjrepo/exp/2017-11-23-000609 .