<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/index.php?action=history&amp;feed=atom&amp;title=CSC_216_F09%2Finterfaces2</id>
	<title>CSC 216 F09/interfaces2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/index.php?action=history&amp;feed=atom&amp;title=CSC_216_F09%2Finterfaces2"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC_216_F09/interfaces2&amp;action=history"/>
	<updated>2026-06-15T06:12:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC_216_F09/interfaces2&amp;diff=27219&amp;oldid=prev</id>
		<title>Jmkwasni at 03:59, 17 November 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC_216_F09/interfaces2&amp;diff=27219&amp;oldid=prev"/>
		<updated>2009-11-17T03:59:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Widget Factory==&lt;br /&gt;
&lt;br /&gt;
Widget Factory Extreme.&lt;br /&gt;
&lt;br /&gt;
===The problem===&lt;br /&gt;
&lt;br /&gt;
Within Java and other OO languages, alot of development is done within groups. Interfaces can help with task delegation to other developers, giving them a 'blueprint' for&lt;br /&gt;
a specific class. This paradigm fits directly into a waterfall development model, and as such is quite useful for programmers to learn. Interfaces also provide for easier code&lt;br /&gt;
re-factoring and application extensibility. &lt;br /&gt;
&lt;br /&gt;
===Participants and props===&lt;br /&gt;
&lt;br /&gt;
Ideally, there should be 3 participants. Below they are listed. For more than 3 people, you could add extra analyst with different sets business logic that the factory needed to implement.&lt;br /&gt;
&lt;br /&gt;
Materials needed:&lt;br /&gt;
&lt;br /&gt;
3-5 sheets of paper.&lt;br /&gt;
Computer *optional*.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! &lt;br /&gt;
 Class Developer (Creates Factory.java)&lt;br /&gt;
 &amp;gt; Implements the method signatures per specification &lt;br /&gt;
! &lt;br /&gt;
 Interface Developer (Creates IFactory.java)    &lt;br /&gt;
 &amp;gt; Determines what the factory needs to do   &lt;br /&gt;
 &amp;gt; Turns business logic into method signatures    &lt;br /&gt;
! &lt;br /&gt;
 Analyst (Determines what needs to be made)&lt;br /&gt;
 &amp;gt; Determines the business logic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===The script===&lt;br /&gt;
&lt;br /&gt;
The instructor begins as the customer, describing a market for a product.&lt;br /&gt;
&lt;br /&gt;
1) The group analyst takes note of what the customer wants, and designs a set of business rules around this.&lt;br /&gt;
&lt;br /&gt;
Example : The customer wants hot air balloons - which vary in lift power, balloon circumference, material, capacity, and maximum altitude.&lt;br /&gt;
&lt;br /&gt;
So the analyst documents all the variations of the product a customer would need built on 1-2 sheets of paper.&lt;br /&gt;
&lt;br /&gt;
2) The group interface developer takes the documentation by the analyst and begins to create a class outline (the interface).&lt;br /&gt;
&lt;br /&gt;
Example : &lt;br /&gt;
void setBalloonCircumference(double cir);&lt;br /&gt;
&lt;br /&gt;
etc..&lt;br /&gt;
&lt;br /&gt;
This should be written on another sheet of paper.&lt;br /&gt;
&lt;br /&gt;
3) Once the interface is complete, the class developer must implement each method.&lt;br /&gt;
&lt;br /&gt;
Example :&lt;br /&gt;
void setBalloonCircumference(double cir) {&lt;br /&gt;
 this.circumference = cir;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
etc..&lt;br /&gt;
&lt;br /&gt;
Once again, this should be written on another sheet of paper&lt;br /&gt;
&lt;br /&gt;
4) After the first 3 steps have been completed, if a computer is available, compile the code and run boundary/use cases. Then present the solution to the instructor for&lt;br /&gt;
feedback.&lt;br /&gt;
&lt;br /&gt;
===Credits===&lt;br /&gt;
John Kwasnick and Josh Hill&lt;/div&gt;</summary>
		<author><name>Jmkwasni</name></author>
	</entry>
</feed>