Construction idioms: Difference between revisions

From John's wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
{|class="wikitable"
{|class="wikitable"
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-0.cs Take Zero]
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-0.cs Take Zero]
| concrete
| concrete implementation
|-
|-
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-1.cs Take One]
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-1.cs Take One]
| interface
| introduce interface
|-
|-
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-2.cs Take Two]
| [https://svn.jj5.net/jjrepo/exp/2017-11-23-000609/take-2.cs Take Two]
| extensible framework
| extensible framework
|}
|}

Revision as of 22:03, 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.

Take Zero concrete implementation
Take One introduce interface
Take Two extensible framework