{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\froman\fcharset0 Times New Roman;}{\f1\froman\fcharset0 Courier;}{\f2\froman\fcharset0 Arial;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;}{\stylesheet {\style\s0 \ql\fi0\li0\ri0\f2\fs24\cf0 Normal;}{\style\s3 \ql\fi0\li0\ri0\f2\fs26\b\cf0 heading 3;}{\style\s2 \ql\fi0\li0\ri0\f2\fs28\b\i\cf0 heading 2;}{\style\s1 \ql\fi0\li0\ri0\f2\fs32\b\cf0 heading 1;}}{\*\listtable}{\*\listoverridetable}{\*\generator iText 2.1.7 by 1T3XT}{\info{\author www.autobest22.com}{\keywords \u-28817?\u20214?\u24320?\u21457?\u20844?\u21496? }{\title 7\u20010?\u-28817?\u20214?\u24320?\u21457?\u21407?\u21017?,\u-28817?\u20214?\u24320?\u21457? }{\subject 7\u20010?\u-28817?\u20214?\u24320?\u21457?\u21407?\u21017?,\u-28817?\u20214?\u24320?\u21457? }}\paperw11907\paperh16840\margl720\margr720\margt720\margb720\pgwsxn11907\pghsxn16840\marglsxn720\margrsxn720\margtsxn720\margbsxn720\pard\plain\s0\fi0\li0\ri0\plain\f1\fs36\b 7\u20010?\u-28817?\u20214?\u24320?\u21457?\u21407?\u21017?,\u-28817?\u20214?\u24320?\u21457? \b0\par\f0{\field{\*\fldinst HYPERLINK //www.autobest22.com}{\fldrslt \pard\plain\f1\fs24\b\cf2 yitian.com //www.autobest22.com\b0 }}\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 7\u20010?\u-28817?\u20214?\u24320?\u21457?\u21407?\u21017?,\u-28817?\u20214?\u24320?\u21457? \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u12288?\u12288?\u28982?\u21518?\u21453?\u-28729?\u21435?\u25226?\u-29777?\u24687?\u20256?\u32473?Printer.\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u21442?\u-30271?\u-230?Mtomefitsin Fowler:Refprofessioninging:Improve the design of Existing Code Kent Beck : Smprhvthatcticinglytingk Best Proverice Povertern ACM: Mtomefitsin Fowler Design column:Reduce repet Kent Beck: Extreme Progri thatmming Explthatined\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u12288?\u12288?\u23427?\u25511?\u21046?\u-30237?\u30721?\u22806?\u-28440? \u30340?\u25968?\u25454?\u32467?\u26500?\u-244?\u24403?\u23427?\u-26501?\u-30335?Printer\u20570?\u19968?\u20214?\u20107?\u24773?\u26102?\u-244?\u23427?\u-29006?\u-31281?\u22806?\u-28440?\u30340?\u25968?\u25454?\u21644?\u-30616?\u31034?\u-244?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u20844?\u21496?\u12290?sthproposingment\u25991?\u-26256?\u20102?\u22806?\u-28440?\u30340?\u32454?\u-32126?\u-244?\u20320?\u27809?\u20851?\u31995?\u21578?\u31459?\u20854?\u23427?\u30340?Printer;XXXPrinter;\u20174?\u-32756?\u-32515?\u22815?\u-28805? \u26131?\u22320?\u25193?\u23637?\u20307?\u20363?\u12290? BTW;Mtomefitsin Fowler\u22312?\u-28711?\u-28212?\u-28720?\u29992?\u20102?Dispoverched Interpret\u24418?\u24335?\u-244?\u-28211?\u22797?\u24615?\u19968?\u32463?\u-30549?\u-25999?\u-27036?\u12290?7\u20010?\u-28817?\u20214?\u24314?\u31569?\u-30268?\u21017?\u12290?\u26356?\u32039?\u-30335?\u30340?\u26159?\u-244?sthproposingment\u-31372?\u28085?\u19968?\u20010?\u-28646?\u29992?\u30340?\u32467?\u26500?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u24403?\u20170?\u-244?\u24182?\u25171?\u21360?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 return sthproposingment (new AsciiPrinter());\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 clrethatr end Invoice... public String whenciiSthproposingment2()\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 return result.toString();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 result.proposingd(pr.footer(this));\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 result.proposingd(pr.item(every));\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 LineItem every = (LineItem) it.next();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 while(it.hwhenNext())\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 Iteroveror it = items.iteroveror();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 result.proposingd(pr.heproposinger(this));\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 StringBuffer result = new StringBuffer();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-29599?html\u21017?\u27809?\u20851?\u31995?\u21578?\u31459?htmlPrinter. clrethatr end Invoice... public String sthproposingment(Printer pr)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 return \u8220?toting owed:\u8221? + iv.toting + \u8220?/n\u8221?;\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 public String footer(Invoice iv)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 return \u8220?/t\u8221? + line.product()+ \u8220?/t/t\u8221? + line.presence() +\u8220?/n\u8221?;\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 public String item(LineItem line)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 return \u8220?Bill for \u8220? + iv.customer + \u8220?/n\u8221?;\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 public String heproposinger(Invoice iv)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 stoveric clrethatr end AsciiPrinter implements Printer\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 String footer(Invoice iv);\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 String item(LineItem line);\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 String heproposinger(Invoice iv);\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 interf_ design Printer\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-28711?\u31181?\u32467?\u26500?\u30340?\u30456?\u20284?\u24615?\u21644?\u22270?\u-29685?\u31435?\u22320?\u19978?\u25105?\u20204?\u-28720?\u29992?composed method(\u20063?\u23601?\u26159?Mtomefitsin Fowler\u30340?Extrlthatw method):\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 3\u-242? \u25171?\u21360?\u21457?\u31080?\u23614?\u-28440?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 2\u-242? \u24490?\u29615?\u27599?\u19968?\u20010?\u-26503?\u30446?\u-244?\u20294?\u26159?\u23427?\u20204?\u30340?\u29616?\u23454?\u31243?\u24207?\u21364?\u26377?\u25152?\u19981?\u21516?\u12290?\u20182?\u20204?\u-28419?\u23436?\u25104?\u19977?\u20214?\u20107?\u24773?\u-230?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 1\u-242? \u25171?\u21360?\u21457?\u31080?\u22836?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 whenciiSthproposingment\u21644?htmlSthproposingment\u20855?\u26377?\u-26889?\u21516?\u30340?\u22522?\u30784?\u32467?\u26500?\u-244?Kent Beck\u21017?\u22312?Smprhvthatcticinglytingk Best Prlthatwice Povertern\u20013?\u26356?\u22522?\u30784?\u22320?\u23637?\u31034?\u20102?\u-26992?\u21547?\u22312?\u-28711?\u20123?reflthatwoing\u19979?\u30340?\u22270?\u-29685?\u12290? \u19978?\u-26782?\u26159?\u19968?\u20010?\u29616?\u23454?\u30340?\u20363?\u23376?\u-244?\u-32756?\u19981?\u26159?\u24605?\u32034?\u20854?\u20195?\u30721?\u30340?\u20960?\u20309?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u8221?); return result.toString(); \}\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \} result.proposingd(\u8220? \u8221?); result.proposingd(\u8220? toting owed:\u8221? + toting + \u8220?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 result.proposingd(\u8220? \u8221? + every.product() + \u8220? \u8221? + every.presence() + \u8220? \u8221?);\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 LineItem every = (LineItem) it.next();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 while(it.hwhenNext())\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 Iteroveror it = items.iteroveror();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u8221?); result.proposingd(\u8220?\u8221?);\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 result.proposingd(\u8220? Bill for \u8221? + customer + \u8220?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 StringBuffer result = new StringBuffer();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 String htmlSthproposingment()\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 return result.toString();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \} result.proposingd(\u8220?toting owed:\u8221? + toting + \u8220?/n\u8221?);\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 result.proposingd(\u8220?/t\u8221? + every.product() + \u8220?/t/t\u8221? + every.presence() + \u8220?/n\u8221?);\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 LineItem every = (LineItem) it.next();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 Iteroveror it = items.iteroveror(); while(it.hwhenNext())\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 result.proposingd(\u8220?Bill for \u8220? + customer + \u8220?/n\u8221?);\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 StringBuffer result = new StringBuffer();\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 Mtomefitsin Fowler\u22312?\u20182?\u30340?refprofessioninging\u20013?\u25551?\u25721?\u20102?\u24456?\u22810?\u-28711?\u26679?\u30340?\u20363?\u23376?\u-244?\u19968?\u27573?\u20195?\u30721?\u25165?\u20540?\u24471?\u31216?\u20026?\u19968?\u20010?\u26041?\u27861?\u-244?\u23398?\u20250?\u-30268?\u21017?\u12290?\u21807?\u26377?\u24403?\u19968?\u20010?\u26041?\u27861?\u21578?\u31459?\u19968? \u20010?\u30340?\u30830?\u30340?\u27809?\u20851?\u31995?\u29992?Intent Reveinging Ni thatme(\u23637?\u-24872?\u31034?\u22270?\u30340?\u21517?\u23383?)\u21629?\u21517?\u26102?\u-244?\u-32515?\u22815?\u-28211?\u29992?\u30340?\u-25025?\u27807?\u21644?\u25104?\u-28419?\u23601?\u24840?\u24191?\u12290?\u20294?\u22312?\u-28711?\u20010?\u-26472?\u30446?\u19978?\u20063?\u19981?\u-30335?\u-29328?\u26497?\u31471?\u-244?\u-32515?\u22815?\u-30549?\u21253?\u22260?\u30340?\u31890?\u24230?\u-29302?\u23567?\u-244?\u-28711?\u20123?\u25903?\u25320?\u24320?\u25903?\u26159?\u20540?\u24471?\u30340?\u12290?\u26041?\u27861?\u26159?\u21253?\u22260?\u30340?\u26368?\u23567?\u31890?\u24230?\u-244?\u-28817?\u20214?\u24314?\u31569?\u20844?\u21496?\u12290?\u23427?\u21516?\u26102?\u20063?\u25193?\u24352?\u20102?\u20445?\u21355?\u30340?\u25903?\u25320?\u24320?\u25903?\u12290? \u20294?\u26159?\u-244?\u26041?\u27861?\u20043?\u-27148?\u20114?\u30456?\u-29693?\u29992?\u30340?\u25903?\u25320?\u24320?\u25903?\u23601?\u20250?\u25193?\u24352?\u-244?\u20107?\u23454?\u19978?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u12290?\u20511?\u20351?\u20307?\u20363?\u20013?\u-29768?\u-29768?\u22810?\u22810?\u30340?\u26041?\u27861?\u-28419?\u24456?\u23567?\u-244?\u-28712?\u26159?\u32437?\u20351?\u26159?\u23567?\u23567?\u30340?2\u12289?3\u21477?\u-28211?\u22797?\u20195?\u30721?\u23601?\u24212?\u-29723?\u21435?\u-25999?\u-27036?\u12290?\u-28211?\u22797?\u20195?\u30721?\u-25999?\u-27036?\u30340?\u26681?\u26412?\u26041?\u27861?\u26159?\u24314?\u31435?\u26412?\u-29013?\u23377?\u31435?\u30340?\u26041?\u27861?\u-244?\u21807?\u26377?\u22823?\u27573?\u30340?\u-28211?\u22797?\u20195?\u30721?\u26377?\u20215?\u20540?\u21435?\u-25999?\u-27036?\u-244?7\u20010?\u-28817?\u20214?\u24314?\u31569?\u-30268?\u21017?\u12290?\u-28509?\u-26472?\u30446?\u26159?\u24456?\u23481?\u26131?\u-30237?\u20915?\u30340?\u12290?\u20294?\u26159? \u-28817?\u20214?\u24314?\u31569?\u30340?\u26434?\u20081?\u25104?\u20998?\u21487?\u-32515?\u24448?\u24448?\u20351?\u-28211?\u22797?\u20195?\u30721?\u28014?\u29616?\u20026?\u30456?\u20284?\u24615?\u-32756?\u24182?\u-26786?\u23436?\u20840?\u30340?\u-28211?\u22797?\u12290?\u-28711?\u20123?\u30456?\u20284?\u24615?\u21487?\u-32515?\u24182?\u-26786?\u19968?\u30524?\u23601?\u-32515?\u30475?\u-28709?\u21435?\u12290?\u-32756?\u26159?\u-26501?\u-30335?\u32463?\u-28729?\u20854?\u23427?\u30340?Refprofessioningy\u31243?\u24207?\u21644?\u19968? \u23450?\u30340?\u20808?\u-30271?\u20043?\u26126?\u12290?\u30456?\u27604?\u30475?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u12290? \u21478?\u19968?\u20010?\u-26472?\u30446?\u23601?\u26159?\u-25999?\u-27036?\u-28211?\u22797?\u20195?\u30721?\u30340?\u31890?\u24230?\u-244?\u-28817?\u20214?\u24314?\u31569?\u20844?\u21496?\u12290?\u20511?\u20351?\u25195?\u25968?\u30340?\u-28211?\u22797?\u20195?\u30721?\u-28419?\u26159?\u21574?\u26495?\u30340?\u-28211?\u22797?\u-244?\u30475?\u30475?\u-28817?\u20214?\u24314?\u31569?\u12290?\u20320?\u22914?\u20309?\u25214?\u21040?\u-28211?\u22797?\u20195?\u30721?\u-244?\u20851?\u-27346?\u22312?\u20110?\u-244?\u21548?\u21548?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u20844?\u21496?\u12290?\u28982?\u21518?\u22312?\u20854?\u20182?\u31867?\u20013?\u-28720?\u29992?\u-29723?clrethatr end\u23545?\u-29599?\u20316?\u20026?\u20803?\u32032?\u12290? \u31561?\u31561?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-28211?\u22797?\u20195?\u30721?\u-26501?\u-30335?refprofessioninging\u26159?\u27627?\u26080?\u30097?\u-27154?\u30340?\u-244?\u-28509?\u20040?\u22312?\u19968?\u20010?\u31867?\u20013?\u-28720?\u29992?Extrlthatw clrethatr end\u-244?\u-28509?\u20040?\u-28720?\u29992?subull crthatptitute protocol\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 5\u-242? \u20511?\u20351?\u22312?\u20004?\u20010?\u19981?\u30456?\u24178?\u30340?\u31867?\u20013?\u26377?\u-28211?\u22797?\u20195?\u30721?\u-244?\u29992?Extrlthatw method\u25226?\u30456?\u21516?\u23616?\u-27056?\u21644?\u19981?\u21516?\u23616?\u-27056?\u20998?\u-26988?\u12290?\u28982?\u21518?\u-28720?\u29992?Form Templhproposing method. 4\u-242? \u20511?\u20351?\u26041?\u27861?\u-28720?\u29992?\u19981?\u21516?\u30340?\u31639?\u27861?\u20570?\u30456?\u21516?\u30340?\u20107?\u24773?\u-244?\u-28509?\u20040?\u22312?\u-28711?\u20004?\u20010?\u23376?\u31867?\u20013?\u-28720?\u29992?Extrlthatw Method;\u25509?\u30528?\u-28720?\u29992?pull up field;\u31227?\u21040?\u21327?\u21516?\u30340?\u-29307?\u31867?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 3\u-242? \u20511?\u20351?\u32467?\u26500?\u30456?\u20284?\u-32756?\u24182?\u-26786?\u23436?\u20840?\u30456?\u21516?\u-244?\u28982?\u21518?\u27665?\u20247?\u-28419?\u-29693?\u29992?\u-29723?method;\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 2\u-242? \u20004?\u20010?\u20804?\u24351?\u23376?\u31867?\u20043?\u-27148?\u26377?\u30456?\u21516?\u30340?\u-30616?\u-28738?\u24335?\u-244?\u21253?\u25324?\u-230?\u-28817?\u20214?\u24314?\u31569?\u20844?\u21496?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 1\u-242? \u21516?\u19968?\u20010?\u31867?\u30340?\u20004?\u20010?\u26041?\u27861?\u20013?\u26377?\u30456?\u21516?\u30340?\u-30616?\u-28738?\u24335?;\u-28720?\u29992?Extrlthatw method\u-244?\u19981?\u-32593?\u23450?\u23601?\u26159?\u20320?\u24448?\u21518?\u30495?\u27491?\u-26501?\u-30335?\u30340?\u19996?\u-30337?\u12290?\u20320?\u22788? \u20110?\u24403?\u20170?\u30340?\u29615?\u22659?\u20013?\u21487?\u-32515?\u26080?\u27861?\u-30237?\u26512?\u20320?\u-30335?\u21578?\u31459?\u19996?\u-30337?\u31350?\u31455?\u26159?\u20160?\u20040?\u26679?\u23376?\u30340?\u12290?\u20320?\u20250?\u22882?\u21326?\u22823?\u23447?\u30340?\u-26634?\u21326?\u21435?\u26426?\u20851?\u-28711?\u26679?\u19981?\u30693?\u-28589?\u-32515?\u21542?\u24517?\u-26880?\u30340?\u21487?\u-32515?\u24615?\u12290?\u21516?\u26102?\u-244?\u21548?\u-29708?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u20844?\u21496?\u12290?\u19968?\u21521?\u19981?\u21435?\u21578?\u31459?\u20320?\u-26492?\u26399?\u-26501?\u-30335?\u30340?\u19996?\u-30337?\u8220?\u12290?\u20511?\u20351?\u20320?\u21435?\u21578?\u31459?\u20320?\u24403?\u20170?\u20197?\u20026?\u26410?\u26469?\u-26501?\u-30335?\u30340?\u19996?\u-30337?\u-244?\u-28817?\u20214?\u24314?\u31569?\u12290?\u23427?\u26159?\u-29708?\u8220?\u21482?\u21578?\u31459?\u20320?\u30495?\u27491?\u-26501?\u-30335?\u30340?\u19996?\u-30337?\u-244?XP\u26377?\u19968?\u20010?\u26681?\u26412?\u-30268?\u21017?\u21483? \u20570?You Arent Gonnthat Need It\u-244?\u20063?\u23601?\u26159?\u20320?\u22914?\u20309?\u-25986?\u-26003?\u19968?\u20010?\u24230?\u30340?\u-26472?\u30446?\u12290?\u-28211?\u22797?\u20195?\u30721?\u20986?\u29616?\u30340?\u21478?\u22806?\u19968?\u20010?\u20027?\u-30335?\u-28589?\u29702?\u23601?\u26159?\u20570?\u24471?\u22826?\u22810?\u-244?\u19968?\u20010?\u22909?\u30340?\u-28817?\u20214?\u20307?\u20363?\u26159?\u21508?\u31181?\u25104?\u20998?\u-30623?\u-28209?\u30340?\u32467?\u23616?\u-244?\u20320?\u30475?\u-28817?\u20214?\u24320?\u21457?\u20844?\u21496?\u12290?\u20063?\u23601?\u26159?\u23481?\u26131?\u-30237?\u26512?\u12289?\u20445?\u21355?\u12289?\u-28211?\u29992?\u30340?\u20195?\u30721?\u12290?\u20294?\u-29705?\u19981?\u-30335?\u-29328?\u26497?\u31471?\u12290? \u25105?\u19968?\u30452?\u20197?\u20026?\u-244?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u12290?\u26356?\u23481?\u26131?\u-30237?\u26512?\u21644?\u25484?\u25569?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 Mtomefitsin Fowler\u22312?\u23427?\u30340?Refprofessioninging\u19968?\u20070?\u20013?\u26377?\u24456?\u22810?\u29992?\u26469?\u29031?\u26009?\u20195?\u30721?\u-28211?\u22797?\u-244?\u-28509?\u20040?\u-28711?\u31181?\u24713?\u21147?\u20063?\u26159?\u20540?\u24471?\u30340?\u12290?\u22312?\u20320?\u32451?\u20064?\u25110?\u30740?\u31350?\u-26889?\u21516?\u30340?\u-26472?\u30446?\u26102?\u-244?\u20294?\u-28712?\u26159?\u20986?\u29616?\u19981?\u23545?\u30340?\u32467?\u23616?\u-244?\u-28711?\u26679?\u25165?\u20855?\u20986?\u29616?\u26356?\u22909?\u30340?\u32467?\u23616?\u12290?\u20511?\u20351?\u20320?\u24605?\u32034?\u20102?\u-244?\u31896?\u-29388?\u19968?\u19979?\u21363?\u21487?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-28711?\u20123?\u-30268?\u21017?\u-28646?\u30693?\u25105?\u20204?\u32039?\u24352?\u22320?\u22797?\u21046?\u12289?\u31896?\u-29388?\u21644?\u31713?\u25913?\u20195?\u30721?\u19981?\u21487?\u-32515?\u20986?\u29616?\u22909?\u30340?\u-244?\u-32756?\u19981?\u20809?\u20809?\u26159?\u22270?\u-29383?\u20107?\u12290?\u22797?\u21046?\u-244?\u20320?\u-30335?\u24605?\u32034?\u21040?\u21508?\u31181?\u21508?\u26679?\u30340?\u21487?\u-32515?\u24615?\u-244?\u-28817?\u20214?\u24314?\u31569?\u20844?\u21496?\u12290?\u-28509? \u20040?\u12290?\u12290?\u-225?\u8220?\u-28711?\u20010?\u-26472?\u30446?\u-244?\u19968?\u26089?\u20808?\u23601?\u19981?\u-30335?\u-28817?\u20214?\u-29762?\u-29791?\u21040?\u27515?\u-30254?\u19979?\u21435?\u12290?\u-29705?\u24635?\u26159?\u-27154?\u19968?\u19979?\u26412?\u-29013?\u8220?\u20511?\u20351?\u-28711?\u26679?\u-244?\u22914?\u20309?\u21435?\u-30237?\u26512?\u-28711?\u20123?\u20195?\u30721?\u20043?\u-27148?\u20855?\u26377?\u20309?\u31181?\u-32684?\u31995?\u12290?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u12290? 5\u-242?\u31532?\u20116?\u-30268?\u21017?\u-230?\u23545?\u26410?\u26469?\u20851?\u-27155?( Povertern BuildForTodthatyDesignForTomorrow)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u22312?\u-28217?\u21462?\u20219?\u20309?\u-30644?\u21160?\u20043?\u21069?\u-26218?\u20808?\u20570?\u19968?\u20010?\u26126?\u26224?\u12289?\u23436?\u22791?\u30340?\u24605?\u32034?\u-244?\u31896?\u-29388?\u19968?\u19979?\u21363?\u21487?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 7\u-242?\u31532?\u19971?\u-30268?\u21017?\u-230?\u24605?\u-32765?\u-255?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-28817?\u20214?\u24418?\u24335?\u26159?\u-28211?\u29992?\u30923?\u21830?\u30340?\u19968?\u31181?\u12290?\u26080?\u-27148?\u-28211?\u22797?\u30340?\u20195?\u30721?\u-28797?\u30528?\u19981?\u26159?\u-28711?\u26679?\u30340?\u30923?\u21830?\u12290? (See CommentsOnSix)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 6\u-242?\u31532?\u20845?\u-30268?\u21017?\u-230?\u20026?\u-28211?\u29992?\u20570?\u22909?\u30923?\u21830?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u19968?\u20010?\u24471?\u-32548?\u30340?\u-28817?\u20214?\u26377?\u24456?\u-27265?\u30340?\u29983?\u21629?\u26399?\u12290?\u20320?\u24517?\u-26880?\u-32515?\u22815?\u20351?\u24471?\u-28817?\u20214?\u-32515?\u22815?\u31526?\u21512?\u-28711?\u26679?\u21644?\u-28509?\u26679?\u30340?\u21464?\u21270?\u12290?\u23398?\u20250?\u-28817?\u20214?\u24314?\u31569?\u12290?\u25152?\u20197?\u-244?\u20182?\u20154?\u22914?\u20309?\u-32515?\u22815?\u-27116?\u21035?\u-28711?\u20123?\u20195?\u30721?\u30340?\u30456?\u20284?\u21644?\u19981?\u21516?\u-244?\u20195?\u30721?\u-28712?\u-30335?\u32473?\u20154?\u30475?\u12290?(Kent Beck) \u20511?\u20351?\u22788?\u22788?\u24357?\u28459?\u20284?\u26159?\u-32756?\u-26786?\u30340?\u20195?\u30721?\u-244?\u20320?\u-30335?\u32463?\u24120?\u-29776?\u20303?\u-244?\u20320?\u20889?\u30340? \u20195?\u30721?\u24182?\u-26786?\u21482?\u32473?\u-29791?\u31639?\u26426?\u30475?\u-244?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u12290?\u20320?\u-29762?\u-29791?\u12289?\u21578?\u31459?\u30340?\u19996?\u-30337?\u-29723?\u24403?\u-32515?\u22815?\u-29783?\u20182?\u20154?\u-30237?\u26512?\u12290?\u-30335?\u-29776?\u20303?\u-244?\u20182?\u20154?\u20250?\u28040?\u-32745?\u25171?\u21457? (Povertern: WhoverYouProduceTheyConsume)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-28817?\u20214?\u20307?\u20363?\u19981?\u26159?\u22312?\u30495?\u22320?\u-26782?\u-28720?\u29992?\u30340?\u12290?\u-28817?\u20214?\u24314?\u31569?\u12290?\u20854?\u20182?\u20154?\u20250?\u-28720?\u29992?\u12289?\u20445?\u21355?\u12289?\u25991?\u26723?\u20320?\u30340?\u20307?\u20363?\u12290?\u-28711?\u20381?\u-29354?\u20110?\u23545?\u20320?\u20307?\u20363?\u30340?\u-30237?\u26512?\u12290?\u25152?\u20197?\u-244?\u26356?\u30830?\u23454? \u20511?\u20351?\u20320?\u26080?\u-27148?\u22320?\u22797?\u21046?\u12289?\u31896?\u-29388?\u12289?\u31713?\u25913?\u20195?\u30721?\u-244?\u26159?\u20197?\u26356?\u23567?\u-244?\u25165?\u21487?\u-32515?\u21435?\u-30263?\u23519?\u-28646?\u29992?\u30340?\u31548?\u32479?\u21644?\u26426?\u21046?\u12290?\u24314?\u31569?\u-28711?\u31181?\u-28646?\u29992?\u24615?\u26368?\u32456?\u25307?\u-32268?\u20307?\u20363?\u26356?\u31616?\u26131?\u-244?\u20107?\u23454?\u19978?\u-28817?\u20214?\u24314?\u31569?\u12290?\u-26503?\u30446?\u24314?\u31569?\u26411?\u20102?\u23601?\u21464?\u25104?\u22825?\u22825?\u20026?\u19968?\u20010?\u19981?\u22909?\u30340?\u-29762?\u-29791?\u20570?\u-30619?\u19969?\u12290?Brooks\u-29708?\u-28729?\u-230? \u27010?\u24565?\u30340?\u23436?\u22791?\u24615?\u26159?\u20307?\u20363?\u-29762?\u-29791?\u20013?\u26368?\u32039?\u-30335?\u30340?\u-26472?\u30446?\u12290? Stroustrup \u20063?\u-29708?\u-230? \u26377?\u19968?\u20010?\u26126?\u20928?\u30340?\u22806?\u-28440?\u32467?\u26500?\u-29754?\u24314?\u31435?\u19968?\u20010?\u21487?\u-30237?\u26512?\u12289?\u21487?\u-28760?\u-29754?\u12289?\u21487?\u20445?\u21355? \u12289?\u21487?\u27979?\u-29739?\u20307?\u20363?\u30340?\u22522?\u30784?\u12290?\u-28817?\u20214?\u24314?\u31569?\u12290? Booch\u21017?\u24635?\u32467?\u-28589?\u-230?\u21271?\u20140?\u-28817?\u20214?\u24314?\u31569?\u12290? \u21807?\u26377?\u24403?\u20320?\u23545?\u20307?\u20363?\u30340?\u20307?\u31995?\u30001?\u19968?\u20010?\u26126?\u26224?\u30340?\u24863?\u-30234?\u-244?\u20195?\u30721?\u19981?\u23545?\u26356?\u23569?\u12290? \u-248?\u30475?\u30475?\u-32515?\u21542?\u-28707?\u25239?\u-247?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 4.\u31532?\u22235?\u-30268?\u21017?\u-230?\u20320?\u21046?\u-28640?\u30340?\u-244?\u31616?\u26131?\u26159?\u22987?\u26411?\u-29768?\u22810?\u24605?\u-32765?\u21644?\u19968?\u27425?\u19968?\u27425?\u30340?\u-28211?\u22797?\u31713?\u25913?\u25165?\u21040?\u-28738?\u30340?\u12290?\u-28711?\u20123?\u24713?\u21147?\u30340?\u27719?\u25253?\u23601?\u26159?\u26356?\u23481?\u26131?\u20445?\u21355?\u-244?\u20294?\u31616?\u26131?\u24182?\u19981?\u24847?\u21619?\u30528?\u8220?quick when well when dirty."\u12290?\u20107?\u23454?\u19978?\u-244?\u30001?\u20110?\u-28711?\u31181?\u31616?\u26131?\u24615?\u20063?\u-30335?\u-30549?\u21822?\u24323?\u12290?\u30830?\u23454?\u24456?\u22810?\u26356?\u25991?\u-26939?\u30340?\u-29762?\u-29791?\u24448?\u24448?\u26356?\u31616?\u26131?\u-244?\u20294?\u26159?\u19981?\u-30335?\u20877?\u27604?\u-28711?\u31616?\u26131?\u20102?\u12290?\u-28711?\u26679?\u20986?\u29616?\u30340?\u20307?\u20363?\u25165?\u26159?\u27809?\u20851?\u31995?\u-30237?\u26512? \u21644?\u23481?\u26131?\u20445?\u21355?\u30340?\u12290?\u-28711?\u24182?\u19981?\u26159?\u-29708?\u24456?\u22810?\u30001?\u24847?\u20041?\u30340?\u29305?\u24615?\u-244?\u20320?\u24517?\u-26880?\u24605?\u32034?\u24456?\u22810?\u25104?\u20998?\u12290?\u25195?\u25968?\u-29762?\u-29791?\u-29723?\u24403?\u23613?\u21487?\u-32515?\u31616?\u26131?\u-244?\u-31591?\u26151?\u-255?\u-247?KISS (Povertern: KeepItSimple)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u26126?\u26224?\u30340?\u-28708?\u-30271?\u26159?\u19968?\u20010?\u-28817?\u20214?\u-26503?\u30446?\u24471?\u-32548?\u30340?\u22522?\u30784?\u12290?\u27809?\u26377?\u-28711?\u26679?\u30340?\u-28708?\u-30271?\u-244?\u20195?\u30721?\u19981?\u23545?\u26356?\u23569?\u12290? \u-248?\u30475?\u30475?\u-32515?\u21542?\u-28707?\u25239?\u-247?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 3\u-242?\u31532?\u19977?\u-30268?\u21017? \u-230?\u-28706?\u32467?\u-28708?\u-30271?(Povertern: MthatintthatinTheVision)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-28817?\u20214?\u-29762?\u-29791?\u19981?\u26159?\u19968?\u20010?\u-28805?\u25551?\u28129?\u20889?\u30340?\u21382?\u31243?\u12290?\u22312?\u20570?\u20219?\u20309?\u19968?\u20010?\u-29762?\u-29791?\u26102?\u-244?\u20511?\u20351?\u31572?\u26696?\u26159?\u8221?yes\u8221?\u-244?\u8220?\u-28711?\u26679?\u20570?\u20250?\u20026?\u20307?\u20363?\u25193?\u24352?\u20215?\u20540?\u21527?\u-225?\u8220?\u-244?\u-27154?\u20320?\u26412?\u-29013?\u19968?\u20010?\u-26472?\u30446?\u-244?\u22312?\u23450?\u22842?\u30828?\u20214?\u24179?\u21488?\u21644?\u24314?\u31569?\u21382?\u31243?\u20043?\u21069?\u-244?\u22312?\u20889?\u19979?\u19968?\u27573?\u20307?\u20363?\u25928?\u29992?\u-244?\u20294?\u26159?\u25105?\u20204?\u27809?\u20851?\u31995?\u26469?\u30475?\u30475?DexperiencedHooker\u25552?\u20986?\u30340?7\u20010?\u-28817?\u20214?\u24314?\u31569?\u-30268?\u21017?:\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 2\u-242?\u31532?\u20108?\u-30268?\u21017?\u-248?\u-32515?\u31616?\u26131?\u23601?\u31616?\u26131?\u-244?\u23601?\u21464?\u25104?\u20102?\u19968?\u20221?\u26032?\u30340?\u20195?\u30721?\u12290?\u-28711?\u-28212?\u30340?\u-28589?\u29702?\u26159?\u31243?\u24207?\u21592?\u27809?\u20851?\u31995?\u22987?\u26411?\u26497?\u23569?\u30340?\u24713?\u21147?\u23601?\u23436?\u25104?\u20195?\u30721?\u-28211?\u29992?\u-244?\u28982?\u21518?\u23569?\u21152?\u31713?\u25913?\u-244?\u31243?\u24207?\u21592?\u25226?\u20960?\u-30644?\u25110?\u19968?\u25972?\u27573?\u20195?\u30721?\u20174?\u-28711?\u-28212?\u22797?\u21046?\u21040?\u-28711?\u-28212?\u-244?\u19968?\u19981?\u30041?\u24847?\u23601?\u20250?\u28431?\u25481?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u19968?\u20010?\u-28817?\u20214?\u20307?\u20363?\u29983?\u23384?\u30340?\u29702?\u30001?\u23601?\u26159?\u-230?\u20026?\u23427?\u30340?\u29992?\u25143?\u25552?\u20379?\u20215?\u20540?\u12290?\u20320?\u25195?\u25968?\u30340?\u23450?\u22842?\u-28419?\u21462?\u20915?\u20110?\u-28711?\u19968?\u28857?\u12290?\u22312?\u25351?\u23450?\u19968?\u20010?\u20307?\u20363?\u-26880?\u27714?\u-244?\u20294?\u26159?\u25105?\u20204?\u27809?\u20851?\u31995?\u26469?\u30475?\u30475?DexperiencedHooker\u25552?\u20986?\u30340?7\u20010?\u-28817?\u20214?\u24314?\u31569?\u-30268?\u21017?:\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 1.\u31532?\u19968?\u-30268?\u21017?\u-230?\u29983?\u23384?\u30340?\u29702?\u30001?(Povertern: TheRewhenon)\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-28211?\u22797?\u20195?\u30721?\u30340?\u20986?\u29616?\u26377?\u21508?\u31181?\u21508?\u26679?\u30340?\u-28589?\u29702?\u-244?\u-26501?\u-30335?\u-28211?\u22797?\u31713?\u25913?\u24456?\u22810?\u22320?\u22336?\u-244?\u25307?\u-32268?\u20195?\u30721?\u-26946?\u20197?\u-30237?\u26512?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u183? \u20320?\u19981?\u-32515?\u24456?\u22909?\u22320?\u23454?\u-30644?\u26412?\u-32515?\u26426?\u-32515?\u20248?\u21270?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u183? \u24403?\u20320?\u31713?\u25913?\u20195?\u30721?\u26102?\u-244?\u19968?\u20010?\u24120?\u-28209?\u20250?\u21512?\u-244?\u20063?\u23601?\u26159?\u-29708?\u-28817?\u20214?\u25805?\u20316?\u30340?\u20219?\u20309?\u19968?\u20010?\u29255?\u26029?--\u19981?\u-29766?\u26159?\u19968?\u20010?\u31639?\u27861?\u-244?\u183? \u20195?\u30721?\u30340?\u20180?\u-32599?\u20250?\u22235?\u22788?\u25955?\u24320?\u-244?\u29992?\u20110?\u-27131?\u-29701?\u30340?\u25991?\u26723?\u22823?\u27010?\u20854?\u20182?\u19996?\u-30337?--\u-29723?\u24403?\u21482?\u20986?\u29616?\u19968?\u27425?\u12290? \u-28817?\u20214?\u-28211?\u22797?\u20986?\u29616?\u-32269?\u22810?\u20250?\u25307?\u-32268?\u20197?\u19979?\u-26472?\u30446?\u-230?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u183? \u20854?\u20013?\u30340?\u19968?\u20010?\u29256?\u26412?\u20250?\u-28729?\u26102?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u20851?\u20110?\u20195?\u30721?\u-28211?\u22797?\u26368?\u20986?\u21517?\u30340?\u21333?\u-29747?\u26159?Kent Beck\u30340?Once And Only Once\u-244?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 7\u20010?\u-28817?\u20214?\u24320?\u21457?\u21407?\u21017?,\u-28817?\u20214?\u24320?\u21457? \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 ,\u29436?\u28895?\u22235?\u-29321?\u-244?\u-27455?\u30002?\u21638?\u21742?\u-244?\u25112?\u26426?\u-28816?\u-25053?\u12290?\u19968?\u-28794?\u-28794?\u26576?\u26032?\u22411?\u22374?\u20811?\u21644?\u-30523?\u30002?\u27493?\u25112?\u-28826?\u22312?\u27493?\u20853?\u24341?\u23548?\u12289?\u28846?\u20853?\u28779?\u21147?\u25903?\u25588?\u19979?\u-244?\u25104?\u25112?\u26007?\u-27105?\u22411?\u-244?\u26102?\u-32756?\u24555?\u-28641?\u26426?\u21160?\u-244?\u26102?\u-32756?\u21344?\u-26490?\u26377?\u21033?\u22320?\u24418?\u-28709?\u-30644?\u28779?\u21147?\u25171?\u20987?\u12290?\u-28646?\u20449?\u12289?\u24037?\u20853?\u12289?\u-27086?\u21270?\u31561?\u20853?\u31181?\u23494?\u20999?\u21327?\u21516?\u-244?\u25972?\u20010?\u25112?\u22330?\u22235?\u22788?\u24320?\u-32079?\u-244?\u21508?\u-29201?\u25915?\u20987?\u32676?\u-26479?\u-26479?\u25253?\u25463?\u-244?\u30452?\u25351?\u-31523?\u20891?\u26680?\u24515?\u-27083?\u22320?\u8230?\u8230?\u-28207?\u31179?\u26102?\u-32126?\u-244?\u-31657?\u21517?\u-32015?\u-26940?\u29579?\u26480?\u29983?\u21069?\u25152?\u22312?\u-28440?\u-27105?\u25152?\u23646?\u20004?\u20010?\u-30523?\u30002?\u22242?\u-244?\u23637?\u24320?\u32418?\u-31523?\u21452?\u26041?\u23454?\u20853?\u23545?\u25239?\u28436?\u32451?\u12290?\u25112?\u26007?\u23578?\u26410?\u25171?\u21709?\u-244?\u20390?\u23519?\u24773?\u25253?\u31995?\u32479?\u24050?\u32463?\u21551?\u21160?\u12290?\u31354?\u20013?\u12289?\u22320?\u-26782?\u12289?\u30005?\u23376?\u31561?\u19981?\u21516?\u20390?\u23519?\u25163?\u27573?\u23558?\u25506?\u27979?\u21040?\u30340?\u25112?\u22330?\u20449?\u24687?\u-244?\u-28670?\u26102?\u20256?\u32473?\u25351?\u25381?\u25152?\u12290?\u26080?\u20154?\u20390?\u23519?\u26426?\u12289?\u25112?\u22330?\u30005?\u-30266?\u12289?\u25163?\u25345?\u21271?\u26007?\u26426?\u12289?\u21355?\u26143?\u23450?\u20301?\u31995?\u32479?\u31561?\u19968?\u31995?\u21015?\u20449?\u24687?\u21270?\u26032?\u-30523?\u22791?\u-244?\u32439?\u32439?\u20142?\u30456?\u28436?\u32451?\u22330?\u-244?\u21508?\u31181?\u25112?\u22330?\u20449?\u24687?\u-24752?\u-32678?\u32418?\u26041?\u25351?\u25381?\u25152?\u12290?\u32418?\u-31523?\u21452?\u26041?\u22260?\u32469?\u20449?\u24687?\u25915?\u-27086?\u23637?\u24320?\u19968?\u22330?\u27530?\u27515?\u-30254?\u-28656?\u-244?\u23558?\u23545?\u25239?\u28436?\u32451?\u19968?\u27425?\u21448?\u19968?\u27425?\u25512?\u21521?\u-25896?\u28526?\u12290?\u20174?\u-30330?\u30422?\u24335?\u24178?\u25200?\u12289?\u25269?\u-28719?\u24335?\u24178?\u25200?\u21040?\u-27077?\u22622?\u24335?\u24178?\u25200?\u-244?\u32418?\u-31523?\u21452?\u26041?\u20174?\u31354?\u20013?\u21040?\u22320?\u-26782?\u-244?\u23545?\u24444?\u27492?\u30340?\u-28646?\u20449?\u32593?\u32476?\u12289?\u25351?\u25381?\u31995?\u32479?\u-28709?\u-30644?\u29467?\u28872?\u25915?\u20987?\u12290?\u30005?\u23376?\u20390?\u23519?\u19982?\u21453?\u20390?\u23519?\u-244?\u24178?\u25200?\u19982?\u21453?\u24178?\u25200?\u8230?\u8230?\u26080?\u24418?\u25112?\u22330?\u19978?\u28436?\u30528?\u19968?\u24149?\u24149?\u24778?\u24515?\u21160?\u-25788?\u30340?\u27963?\u21095?\u12290?\u32418?\u26041?\u20853?\u31181?\u22810?\u-244?\u-30523?\u22791?\u31934?\u-32145?\u-244?\u20449?\u24687?\u21270?\u21547?\u-28209?\u-25896?\u-244?\u21508?\u-29201?\u25915?\u20987?\u32676?\u30001?\u22374?\u20811?\u12289?\u27493?\u20853?\u12289?\u24037?\u20853?\u12289?\u20390?\u23519?\u12289?\u28846?\u20853?\u12289?\u-27086?\u31354?\u12289?\u21518?\u-30523?\u20445?\u-26980?\u32452?\u31561?\u22810?\u20010?\u20853?\u31181?\u32452?\u25104?\u-244?\u23427?\u20204?\u20197?\u20449?\u24687?\u20026?\u8220?\u32499?\u8221?\u-244?\u27169?\u22359?\u32452?\u21512?\u-244?\u21363?\u25554?\u21363?\u29992?\u-244?\u21327?\u21516?\u20986?\u20987?\u-244?\u-28217?\u21462?\u22810?\u-29201?\u31435?\u20307?\u24378?\u20987?\u12289?\u20004?\u32764?\u24555?\u-28641?\u31361?\u-29393?\u12289?\u29305?\u25112?\u31359?\u25554?\u-28339?\u21512?\u12289?\u20998?\u21306?\u21106?\u-30526?\u22260?\u27516?\u31561?\u25112?\u27861?\u-244?\u23558?\u-31523?\u26041?\u-28612?\u21521?\u8220?\u27515?\u-29201?\u8221?\u12290?\u20174?\u26377?\u24418?\u25112?\u22330?\u21040?\u26080?\u24418?\u25112?\u22330?\u-244?\u20449?\u24687?\u21270?\u20026?\u-27455?\u30002?\u25554?\u32709?\u-244?\u-28646?\u-28729?\u23545?\u25239?\u28436?\u32451?\u-29723?\u-28440?\u22312?\u20449?\u24687?\u21270?\u26465?\u20214?\u19979?\u25112?\u22330?\u24863?\u30693?\u12289?\u20449?\u24687?\u20256?\u-28781?\u12289?\u28779?\u21147?\u25171?\u20987?\u21644?\u25351?\u25381?\u25511?\u21046?\u-32515?\u21147?\u22823?\u22823?\u22686?\u24378?\u-244?\u-28440?\u-27105?\u23454?\u25112?\u-32515?\u21147?\u24471?\u21040?\u-28709?\u19968?\u27493?\u25552?\u21319?\u12290?\u-27512?\u23545?\u30446?\u21069?\u-30266?\u26223?\u20223?\u30495?\u31995?\u32479?\u24212?\u29992?\u-31997?\u22260?\u29421?\u31364?\u12289?\u24212?\u29992?\u27169?\u24335?\u21333?\u19968?\u12289?\u24212?\u29992?\u30446?\u30340?\u-32767?\u22871?\u31561?\u-27154?\u-26472?,\u25105?\u20844?\u21496?\u21033?\u29992?\u20248?\u31168?\u-30266?\u26223?\u20223?\u30495?\u31995?\u32479?VegaPrime2.0\u24320?\u21457?\u24179?\u21488?,\u32467?\u21512?VC++\u22810?\u32447?\u31243?\u25216?\u26415?,\u25552?\u20986?\u20102?\u19968?\u31181?\u32418?\u-31523?\u23545?\u25239?\u31995?\u32479?\u21407?\u22411?\u30340?\u23454?\u29616?\u26041?\u27861?\u12290?\u-29723?\u26041?\u27861?\u32508?\u21512?\u20102?\u-31142?\u25311?\u29616?\u23454?\u20013?\u30340?\u19977?\u32500?\u24314?\u27169?\u12289?\u30896?\u25758?\u26816?\u27979?\u12289?\u29615?\u22659?\u29305?\u25928?\u31561?\u20851?\u-27346?\u25216?\u26415?\u20197?\u21450?VC++\u24179?\u21488?\u25552?\u20379?\u30340?\u32593?\u32476?\u-28646?\u20449?\u25216?\u26415?\u12289?\u22810?\u32447?\u31243?\u22788?\u29702?\u25216?\u26415?\u12289?\u31995?\u32479?\u20989?\u25968?\u22238?\u-29693?\u26041?\u27861?\u31561?,\u20351?\u24471?\u-30266?\u26223?\u20223?\u30495?\u24212?\u29992?\u30001?\u21333?\u26426?\u29256?\u-29328?\u21521?\u32593?\u32476?\u29256?,\u25193?\u22823?\u20102?\u24212?\u29992?\u-31997?\u22260?;\u30001?\u26222?\u-28646?\u30340?\u22330?\u26223?\u28459?\u28216?\u-29328?\u21521?\u32593?\u32476?\u24335?\u20132?\u20114?,\u20016?\u23500?\u20102?\u24212?\u29992?\u27169?\u24335?;\u30001?\u25928?\u26524?\u28436?\u31034?\u-29328?\u21521?\u29702?\u-29766?\u26041?\u27861?\u30340?\u-25972?\u-29759?,\u26356?\u26032?\u20102?\u24212?\u29992?\u30446?\u30340?\u12290?\u23454?\u-25972?\u32467?\u26524?\u-30616?\u26126?,\u-29723?\u26041?\u27861?\u23545?\u32418?\u-31523?\u23545?\u25239?\u31995?\u32479?\u30340?\u23454?\u29616?\u20855?\u26377?\u23454?\u29992?\u20215?\u20540?\u12290?\u-30266?\u26223?\u20223?\u30495?\u25216?\u26415?\u30340?\u30740?\u31350?\u-28719?\u24180?\u26469?\u21313?\u20998?\u27963?\u-29245?,\u23427?\u27719?\u-26938?\u20102?\u-29791?\u31639?\u26426?\u22270?\u24418?\u23398?\u12289?\u22810?\u23186?\u20307?\u25216?\u26415?\u12289?\u20154?\u24037?\u26234?\u-32515?\u12289?\u20154?\u26426?\u25509?\u21475?\u25216?\u26415?\u12289?\u20256?\u24863?\u22120?\u25216?\u26415?\u12289?\u-25896?\u24230?\u24182?\u-30644?\u30340?\u23454?\u26102?\u-29791?\u31639?\u25216?\u26415?\u21644?\u20154?\u30340?\u-30644?\u20026?\u23398?\u30740?\u31350?\u31561?\u22810?\u-26503?\u20851?\u-27346?\u25216?\u26415?\u12290?\u-30266?\u26223?\u20223?\u30495?\u32473?\u29992?\u25143?\u20197?\u-28612?\u30495?\u30340?\u20307?\u-25972?,\u20026?\u20154?\u20204?\u30740?\u31350?\u20107?\u29289?\u12289?\u-30270?\u23519?\u20107?\u29289?\u25552?\u20379?\u20102?\u26497?\u22823?\u30340?\u20415?\u21033?\u12290?\u-29791?\u31639?\u26426?\u20223?\u30495?\u25216?\u26415?\u12289?\u32593?\u32476?\u-28646?\u20449?\u25216?\u26415?\u30340?\u24555?\u-28641?\u21457?\u23637?,\u20351?\u-30266?\u26223?\u20223?\u30495?\u25216?\u26415?\u26085?\u30410?\u25104?\u29087?,\u20026?\u21033?\u29992?\u-30266?\u26223?\u20223?\u30495?\u25552?\u-25896?\u31354?\u31649?\u25928?\u-32515?\u21019?\u-28640?\u20102?\u-32145?\u22909?\u26465?\u20214?,\u29305?\u21035?\u26159?\u19968?\u20123?\u20248?\u31168?\u30340?\u-30266?\u26223?\u20223?\u30495?\u24179?\u21488?\u30340?\u20986?\u29616?,\u22823?\u22823?\u25512?\u21160?\u26159?\u-31142?\u25311?\u29616?\u23454?\u25216?\u26415?\u30340?\u24191?\u27867?\u24212?\u29992?\u12290?VegaPrime\u26159?\u19968?\u31181?\u29992?\u20110?\u23454?\u26102?\u20223?\u30495?\u21450?\u-31142?\u25311?\u29616?\u23454?\u24212?\u29992?\u30340?\u-25896?\u24615?\u-32515?\u-28817?\u20214?\u29615?\u22659?\u21644?\u24037?\u20855?,\u26159?\u21487?\u28789?\u27963?\u25193?\u23637?\u30340?\u-28817?\u20214?\u24037?\u20855?,\u29992?\u20110?\u21019?\u24314?\u21450?\u-28339?\u32622?\u-30266?\u26223?\u20223?\u30495?\u12289?\u22810?\u-26490?\u22495?\u20223?\u30495?\u21644?\u-28646?\u29992?\u21487?\u-30266?\u21270?\u24212?\u29992?\u30340?\u-30266?\u26223?\u24179?\u21488?,\u-29768?\u22810?\u23398?\u-32763?\u23637?\u24320?\u20102?\u22522?\u20110?Vega\u30340?\u-30266?\u26223?\u20223?\u30495?\u30340?\u24212?\u29992?\u30740?\u31350?\u12290?\u20294?\u26159?,\u30446?\u21069?\u22522?\u20110?Vega\u25110?VegaPrime\u30340?\u24212?\u29992?\u30340?\u-31997?\u22260?\u27604?\u-28797?\u31364?,\u24212?\u29992?\u30340?\u27169?\u24335?\u-28797?\u20026?\u21333?\u19968?,\u-32756?\u19988?\u24212?\u29992?\u30340?\u30446?\u30340?\u26159?\u29992?\u26469?\u28436?\u31034?,\u21487?\u20132?\u20114?\u31243?\u24230?\u20302?\u12290?\u24320?\u-28720?\u-32684?\u21512?( ) \u-28817?\u20214?\u24320?\u21457?\u20844?\u21496?\u-244?\u-30337?\u23433?\u-28817?\u20214?\u22806?\u21253?\u20844?\u21496?\u-244?\u27494?\u27721?\u-28817?\u20214?\u22806?\u21253?\u20844?\u21496?\u-244?\u27604?\u-28797?\u-26784?\u-29647?\u30340?\u-28817?\u20214?\u24320?\u21457?\u20844?\u21496?\u-244?\u-28817?\u20214?\u22806?\u21253?\u20844?\u21496?\u12290?\u24320?\u-28720?\u-32684?\u21512?\u20449?\u24687?\u25216?\u26415?\u26377?\u-27056?\u20844?\u21496?()\u-32684?\u31995?\u30005?\u-29731?\u-230?400-628-1365 010-\u-29395?\u20080?\u-28498?\u31665?\u-230?creatunion@\u-29395?\u20080?MSN:creatunion@,\u20851?\u20110?\u20195?\u30721?\u-28211?\u22797?\u26368?\u-31657?\u21517?\u30340?\u21333?\u-29747?\u26159?Kent Beck\u30340?Once And Only Once\u-244?\u20063?\u23601?\u26159?\u-29708?\u-28817?\u20214?\u25805?\u20316?\u30340?\u20219?\u20309?\u19968?\u20010?\u29255?\u26029?--\u19981?\u31649?\u26159?\u19968?\u20010?\u31639?\u27861?\u-244?\u19968?\u20010?\u24120?\u-28209?\u-26938?\u21512?\u-244?\u29992?\u20110?\u-27131?\u-29701?\u30340?\u25991?\u26723?\u25110?\u-32763?\u20854?\u20182?\u19996?\u-30337?--\u24212?\u24403?\u21482?\u20986?\u29616?\u19968?\u27425?\u12290? \u-28817?\u20214?\u-28211?\u22797?\u20986?\u29616?\u-32269?\u23569?\u20250?\u23548?\u-32268?\u20197?\u19979?\u-27154?\u-26472?\u-230?,\u183? \u20854?\u20013?\u30340?\u19968?\u20010?\u29256?\u26412?\u20250?\u-28729?\u26399?,\u183? \u20195?\u30721?\u30340?\u-29405?\u20219?\u20250?\u22235?\u22788?\u25955?\u24320?\u-244?\u23548?\u-32268?\u20195?\u30721?\u-26946?\u20197?\u29702?\u-30237?,\u183? \u24403?\u20320?\u20462?\u25913?\u20195?\u30721?\u26102?\u-244?\u-26880?\u-30335?\u-28211?\u22797?\u20462?\u25913?\u24456?\u22810?\u22320?\u26041?\u-244?\u19968?\u19981?\u23567?\u24515?\u23601?\u20250?\u-28585?\u28431?,\u183? \u20320?\u19981?\u-32515?\u24456?\u22909?\u22320?\u-28709?\u-30644?\u24615?\u-32515?\u20248?\u21270?,\u-28211?\u22797?\u20195?\u30721?\u30340?\u20135?\u29983?\u26377?\u21508?\u31181?\u21508?\u26679?\u30340?\u21407?\u22240?\u-244?\u31243?\u24207?\u21592?\u25226?\u20960?\u-30644?\u25110?\u19968?\u25972?\u27573?\u20195?\u30721?\u20174?\u-28711?\u-28212?\u22797?\u21046?\u21040?\u-28711?\u-28212?\u-244?\u28982?\u21518?\u23569?\u21152?\u20462?\u25913?\u-244?\u23601?\u21464?\u25104?\u20102?\u19968?\u20221?\u26032?\u30340?\u20195?\u30721?\u12290?\u-28711?\u-28212?\u30340?\u21407?\u22240?\u26159?\u31243?\u24207?\u21592?\u21487?\u20197?\u-28646?\u-28729?\u26497?\u23569?\u30340?\u21162?\u21147?\u23601?\u23436?\u25104?\u20195?\u30721?\u-28211?\u29992?\u-244?\u20294?\u26159?\u25105?\u20204?\u21487?\u20197?\u26469?\u30475?\u30475?DavidHooker\u25552?\u20986?\u30340?7\u20010?\u-28817?\u20214?\u24320?\u21457?\u21407?\u21017?:,1.\u31532?\u19968?\u21407?\u21017?\u-230?\u23384?\u22312?\u30340?\u29702?\u30001?(Pattern: TheReason),\u19968?\u20010?\u-28817?\u20214?\u31995?\u32479?\u23384?\u22312?\u30340?\u29702?\u30001?\u23601?\u26159?\u-230?\u20026?\u23427?\u30340?\u29992?\u25143?\u25552?\u20379?\u20215?\u20540?\u12290?\u20320?\u25152?\u26377?\u30340?\u20915?\u23450?\u-28419?\u21462?\u20915?\u20110?\u-28711?\u19968?\u28857?\u12290?\u22312?\u25351?\u23450?\u19968?\u20010?\u31995?\u32479?\u-26880?\u27714?\u-244?\u22312?\u20889?\u19979?\u19968?\u27573?\u31995?\u32479?\u21151?\u-32515?\u-244?\u22312?\u20915?\u23450?\u30828?\u20214?\u24179?\u21488?\u21644?\u24320?\u21457?\u-28729?\u31243?\u20043?\u21069?\u-244?\u-27154?\u20320?\u-32278?\u24049?\u19968?\u20010?\u-27154?\u-26472?\u-244?\u8220?\u-28711?\u26679?\u20570?\u20250?\u20026?\u31995?\u32479?\u22686?\u21152?\u20215?\u20540?\u21527?\u-225?\u8220?\u-244?\u22914?\u26524?\u31572?\u26696?\u26159?\u8221?yes\u8221?\u-244?\u20570?\u12290?\u22914?\u26524?\u26159?\u8221?No\u8221?,\u19981?\u20570?\u12290?\u-28711?\u20010?\u21407?\u21017?\u26159?\u20854?\u20182?\u21407?\u21017?\u30340?\u21407?\u21017?\u12290?,2\u-242?\u31532?\u20108?\u21407?\u21017?\u-248?\u-32515?\u31616?\u21333?\u23601?\u31616?\u21333?\u-244?\u24858?\u-30686?\u-255?\u-247?KISS (Pattern: KeepItSimple),\u-28817?\u20214?\u-29762?\u-29791?\u19981?\u26159?\u19968?\u20010?\u-28805?\u25551?\u28129?\u20889?\u30340?\u-28729?\u31243?\u12290?\u22312?\u20570?\u20219?\u20309?\u19968?\u20010?\u-29762?\u-29791?\u26102?\u-244?\u20320?\u24517?\u-26501?\u-32765?\u-31151?\u24456?\u22810?\u22240?\u32032?\u12290?\u25152?\u26377?\u-29762?\u-29791?\u24212?\u24403?\u23613?\u21487?\u-32515?\u31616?\u21333?\u-244?\u20294?\u26159?\u19981?\u-30335?\u20877?\u27604?\u-28711?\u31616?\u21333?\u20102?\u12290?\u-28711?\u26679?\u20135?\u29983?\u30340?\u31995?\u32479?\u25165?\u26159?\u21487?\u20197?\u29702?\u-30237? \u21644?\u23481?\u26131?\u32500?\u25252?\u30340?\u12290?\u-28711?\u24182?\u19981?\u26159?\u-29708?\u24456?\u22810?\u30001?\u24847?\u20041?\u30340?\u29305?\u24615?\u-244?\u22240?\u20026?\u-28711?\u31181?\u31616?\u21333?\u24615?\u20063?\u-30335?\u-30549?\u25243?\u24323?\u12290?\u30830?\u23454?\u24456?\u22810?\u26356?\u20248?\u-26939?\u30340?\u-29762?\u-29791?\u24448?\u24448?\u26356?\u31616?\u21333?\u-244?\u20294?\u31616?\u21333?\u24182?\u19981?\u24847?\u21619?\u30528?\u8220?quick and dirty."\u12290?\u20107?\u23454?\u19978?\u-244?\u31616?\u21333?\u26159?\u-28646?\u-28729?\u-29768?\u22810?\u24605?\u-32765?\u21644?\u19968?\u27425?\u19968?\u27425?\u30340?\u21453?\u22797?\u20462?\u25913?\u25165?\u-28738?\u21040?\u30340?\u12290?\u-28711?\u20123?\u21162?\u21147?\u30340?\u27719?\u25253?\u23601?\u26159?\u26356?\u23481?\u26131?\u32500?\u25252?\u-244?\u20195?\u30721?\u-27367?\u-29713?\u26356?\u23569?\u12290? \u-248?\u30475?\u30475?\u26159?\u21542?\u-28707?\u21453?\u-247?,3\u-242?\u31532?\u19977?\u21407?\u21017? \u-230?\u20445?\u25345?\u-28708?\u-30271?(Pattern: MaintainTheVision),\u28165?\u26224?\u30340?\u-28708?\u-30271?\u26159?\u19968?\u20010?\u-28817?\u20214?\u-26503?\u30446?\u25104?\u21151?\u30340?\u22522?\u30784?\u12290?\u27809?\u26377?\u-28711?\u26679?\u30340?\u-28708?\u-30271?\u-244?\u-26503?\u30446?\u24320?\u21457?\u26368?\u21518?\u23601?\u21464?\u25104?\u22825?\u22825?\u20026?\u19968?\u20010?\u19981?\u22909?\u30340?\u-29762?\u-29791?\u20570?\u-30619?\u19969?\u12290?Brooks\u-29708?\u-28729?\u-230? \u27010?\u24565?\u30340?\u23436?\u25972?\u24615?\u26159?\u31995?\u32479?\u-29762?\u-29791?\u20013?\u26368?\u-28211?\u-30335?\u30340?\u-27154?\u-26472?\u12290? Stroustrup \u20063?\u-29708?\u-230? \u26377?\u19968?\u20010?\u24178?\u20928?\u30340?\u20869?\u-28440?\u32467?\u26500?\u-29754?\u26500?\u24314?\u19968?\u20010?\u21487?\u29702?\u-30237?\u12289?\u21487?\u-28760?\u-29754?\u12289?\u21487?\u32500?\u25252? \u12289?\u21487?\u27979?\u-29739?\u31995?\u32479?\u30340?\u22522?\u30784?\u12290? Booch\u21017?\u24635?\u32467?\u-28589?\u-230? \u21482?\u26377?\u24403?\u20320?\u23545?\u31995?\u32479?\u30340?\u20307?\u31995?\u30001?\u19968?\u20010?\u28165?\u26224?\u30340?\u24863?\u-30263?\u-244?\u25165?\u21487?\u-32515?\u21435?\u21457?\u29616?\u-28646?\u29992?\u30340?\u25277?\u-29599?\u21644?\u26426?\u21046?\u12290?\u24320?\u21457?\u-28711?\u31181?\u-28646?\u29992?\u24615?\u26368?\u32456?\u23548?\u-32268?\u31995?\u32479?\u26356?\u31616?\u21333?\u-244?\u22240?\u27492?\u26356?\u23567?\u-244?\u26356?\u21487?\u-26784? \u22914?\u26524?\u20320?\u19981?\u26029?\u22320?\u22797?\u21046?\u12289?\u31896?\u-29388?\u12289?\u20462?\u25913?\u20195?\u30721?\u-244?\u26368?\u32456?\u20320?\u23558?\u-27017?\u20837?\u19968?\u20010?\u22823?\u27877?\u28525?(the Big Mud),\u20320?\u27704?\u-28708?\u19981?\u21487?\u-32515?\u23545?\u31995?\u32479?\u26377?\u19968?\u20010?\u28165?\u26224?\u30340?\u-29788?\u-29754?\u12290?,4.\u31532?\u22235?\u21407?\u21017?\u-230?\u20320?\u21046?\u-28640?\u30340?\u-244?\u21035?\u20154?\u20250?\u28040?\u-29383? (Pattern: WhatYouProduceTheyConsume),\u-28817?\u20214?\u31995?\u32479?\u19981?\u26159?\u22312?\u30495?\u31354?\u20013?\u20351?\u29992?\u30340?\u12290?\u20854?\u20182?\u20154?\u20250?\u20351?\u29992?\u12289?\u32500?\u25252?\u12289?\u25991?\u26723?\u20320?\u30340?\u31995?\u32479?\u12290?\u-28711?\u20381?\u-29354?\u20110?\u23545?\u20320?\u31995?\u32479?\u30340?\u29702?\u-30237?\u12290?\u25152?\u20197?\u-244?\u20320?\u-29762?\u-29791?\u12289?\u23454?\u29616?\u30340?\u19996?\u-30337?\u24212?\u24403?\u-32515?\u22815?\u-29783?\u21035?\u20154?\u29702?\u-30237?\u12290?\u-30335?\u-29776?\u20303?\u-244?\u20320?\u20889?\u30340? \u20195?\u30721?\u24182?\u-26786?\u21482?\u32473?\u-29791?\u31639?\u26426?\u30475?\u-244?\u20320?\u-30335?\u26102?\u26102?\u-29776?\u20303?\u-244?\u20195?\u30721?\u-28712?\u-30335?\u32473?\u20154?\u30475?\u12290?(Kent Beck) \u22914?\u26524?\u21040?\u22788?\u27867?\u28389?\u20284?\u26159?\u-32756?\u-26786?\u30340?\u20195?\u30721?\u-244?\u21035?\u20154?\u22914?\u20309?\u-32515?\u22815?\u-28760?\u21035?\u-28711?\u20123?\u20195?\u30721?\u30340?\u30456?\u20284?\u21644?\u19981?\u21516?\u-244?\u22914?\u20309?\u21435?\u29702?\u-30237?\u-28711?\u20123?\u20195?\u30721?\u20043?\u-27148?\u20855?\u26377?\u20309?\u31181?\u20851?\u31995?\u12290? 5\u-242?\u31532?\u20116?\u21407?\u21017?\u-230?\u23545?\u23558?\u26469?\u24320?\u25918?( Pattern BuildForTodayDesignForTomorrow),\u19968?\u20010?\u25104?\u21151?\u30340?\u-28817?\u20214?\u26377?\u24456?\u-27265?\u30340?\u29983?\u21629?\u26399?\u12290?\u20320?\u24517?\u-26501?\u-32515?\u22815?\u20351?\u24471?\u-28817?\u20214?\u-32515?\u22815?\u-28670?\u24212?\u-28711?\u26679?\u21644?\u-28509?\u26679?\u30340?\u21464?\u21270?\u12290?\u25152?\u20197?\u-244?\u19968?\u24320?\u22987?\u23601?\u19981?\u-30335?\u-28817?\u20214?\u-29762?\u-29791?\u21040?\u27515?\u-30254?\u19978?\u21435?\u12290?\u-29705?\u24635?\u26159?\u-27154?\u19968?\u19979?\u-32278?\u24049?\u8220?\u22914?\u26524?\u-28711?\u26679?\u-244?\u-28509? \u20040?\u-225?\u8220?\u-28711?\u20010?\u-27154?\u-26472?\u-244?\u20320?\u-30335?\u-32765?\u-31151?\u21040?\u21508?\u31181?\u21508?\u26679?\u30340?\u21487?\u-32515?\u24615?\u-244?\u-32756?\u19981?\u20809?\u20809?\u26159?\u22270?\u30465?\u20107?\u12290?\u22797?\u21046?\u-244?\u31896?\u-29388?\u19968?\u19979?\u21363?\u21487?\u12290?,6\u-242?\u31532?\u20845?\u21407?\u21017?\u-230?\u20026?\u-28211?\u29992?\u20570?\u22909?\u-29791?\u21010?,\u-28817?\u20214?\u27169?\u24335?\u26159?\u-28211?\u29992?\u-29791?\u21010?\u30340?\u19968?\u31181?\u12290?\u19981?\u26029?\u-28211?\u22797?\u30340?\u20195?\u30721?\u26174?\u28982?\u19981?\u26159?\u-28711?\u26679?\u30340?\u-29791?\u21010?\u12290? (See CommentsOnSix),7\u-242?\u31532?\u19971?\u21407?\u21017?\u-230?\u24605?\u-32765?\u-255?,\u22312?\u-28217?\u21462?\u20219?\u20309?\u21160?\u20316?\u20043?\u21069?\u-26218?\u20808?\u20570?\u19968?\u20010?\u28165?\u26224?\u12289?\u23436?\u25972?\u30340?\u-32765?\u-31151?\u-244?\u-28711?\u26679?\u25165?\u-32515?\u20135?\u29983?\u26356?\u22909?\u30340?\u32467?\u26524?\u12290?\u22914?\u26524?\u20320?\u-32765?\u-31151?\u20102?\u-244?\u20294?\u-28712?\u26159?\u20135?\u29983?\u-27367?\u-29713?\u30340?\u32467?\u26524?\u-244?\u-28509?\u20040?\u-28711?\u31181?\u21162?\u21147?\u20063?\u26159?\u20540?\u24471?\u30340?\u12290?\u22312?\u20320?\u23398?\u20064?\u25110?\u30740?\u31350?\u31867?\u20284?\u30340?\u-27154?\u-26472?\u26102?\u-244?\u26356?\u23481?\u26131?\u29702?\u-30237?\u21644?\u25484?\u25569?\u12290?,\u-28711?\u20123?\u21407?\u21017?\u21578?\u-29751?\u25105?\u20204?\u-28805?\u26494?\u22320?\u22797?\u21046?\u12289?\u31896?\u-29388?\u21644?\u20462?\u25913?\u20195?\u30721?\u19981?\u21487?\u-32515?\u20135?\u29983?\u22909?\u30340?\u-244?\u20063?\u23601?\u26159?\u23481?\u26131?\u29702?\u-30237?\u12289?\u32500?\u25252?\u12289?\u-28211?\u29992?\u30340?\u20195?\u30721?\u12290?\u20294?\u-29705?\u19981?\u-30335?\u-29328?\u26497?\u31471?\u12290? \u25105?\u19968?\u30452?\u-29788?\u20026?\u-244?\u19968?\u20010?\u22909?\u30340?\u-28817?\u20214?\u31995?\u32479?\u26159?\u21508?\u31181?\u22240?\u32032?\u26435?\u-30623?\u30340?\u32467?\u26524?\u-244?\u20063?\u23601?\u26159?\u20320?\u22914?\u20309?\u25226?\u25569?\u19968?\u20010?\u24230?\u30340?\u-27154?\u-26472?\u12290?\u-28211?\u22797?\u20195?\u30721?\u20135?\u29983?\u30340?\u21478?\u22806?\u19968?\u20010?\u20027?\u-30335?\u21407?\u22240?\u23601?\u26159?\u20570?\u24471?\u22826?\u22810?\u-244?XP\u26377?\u19968?\u20010?\u22522?\u26412?\u21407?\u21017?\u21483? \u20570?You Arent Gonna Need It\u-244?\u23427?\u26159?\u-29708?\u8220?\u21482?\u23454?\u29616?\u20320?\u30495?\u27491?\u-26880?\u-30335?\u30340?\u19996?\u-30337?\u-244?\u20174?\u26469?\u19981?\u21435?\u23454?\u29616?\u20320?\u-26492?\u26399?\u-26880?\u-30335?\u30340?\u19996?\u-30337?\u8220?\u12290?\u22914?\u26524?\u20320?\u21435?\u23454?\u29616?\u20320?\u29616?\u22312?\u-29788?\u20026?\u23558?\u26469?\u-26880?\u-30335?\u30340?\u19996?\u-30337?\u-244?\u19981?\u19968?\u23450?\u23601?\u26159?\u20320?\u20197?\u21518?\u30495?\u27491?\u-26880?\u-30335?\u30340?\u19996?\u-30337?\u12290?\u20320?\u22788? \u20110?\u29616?\u22312?\u30340?\u29615?\u22659?\u20013?\u21487?\u-32515?\u26080?\u27861?\u29702?\u-30237?\u20320?\u-30335?\u23454?\u29616?\u19996?\u-30337?\u31350?\u31455?\u26159?\u20160?\u20040?\u26679?\u23376?\u30340?\u12290?\u20320?\u20250?\u28010?\u-29383?\u22823?\u-28209?\u30340?\u26102?\u-27148?\u21435?\u26500?\u-28640?\u-28711?\u26679?\u19981?\u30693?\u-28589?\u26159?\u21542?\u24517?\u-26501?\u30340?\u21487?\u-32515?\u24615?\u12290?\u21516?\u26102?\u-244?\u24403?\u20320?\u30495?\u27491?\u23454?\u29616?\u30340?\u26102?\u20505?\u23601?\u21487?\u-32515?\u20135?\u29983?\u-28211? \u22797?\u20195?\u30721?\u12290?,Martin Fowler\u22312?\u23427?\u30340?Refactoring\u19968?\u20070?\u20013?\u26377?\u24456?\u22810?\u29992?\u26469?\u22788?\u29702?\u20195?\u30721?\u-28211?\u22797?\u-244?\u21253?\u25324?\u-230?,1\u-242? \u21516?\u19968?\u20010?\u31867?\u30340?\u20004?\u20010?\u26041?\u27861?\u20013?\u26377?\u30456?\u21516?\u30340?\u-30616?\u-28738?\u24335?,\u20351?\u29992?Extract method\u-244?\u28982?\u21518?\u22823?\u23478?\u-28419?\u-29693?\u29992?\u-29723?method;,2\u-242? \u20004?\u20010?\u20804?\u24351?\u23376?\u31867?\u20043?\u-27148?\u26377?\u30456?\u21516?\u30340?\u-30616?\u-28738?\u24335?\u-244?\u-28509?\u20040?\u22312?\u-28711?\u20004?\u20010?\u23376?\u31867?\u20013?\u20351?\u29992?Extract Method,\u25509?\u30528?\u20351?\u29992?pull up field,\u31227?\u21040?\u20849?\u21516?\u30340?\u-29307?\u31867?,3\u-242? \u22914?\u26524?\u32467?\u26500?\u30456?\u20284?\u-32756?\u24182?\u-26786?\u23436?\u20840?\u30456?\u21516?\u-244?\u29992?Extract method\u25226?\u30456?\u21516?\u-28440?\u20998?\u21644?\u19981?\u21516?\u-28440?\u20998?\u20998?\u24320?\u12290?\u28982?\u21518?\u20351?\u29992?Form Template method. 4\u-242? \u22914?\u26524?\u26041?\u27861?\u20351?\u29992?\u19981?\u21516?\u30340?\u31639?\u27861?\u20570?\u30456?\u21516?\u30340?\u20107?\u24773?\u-244?\u-28509?\u20040?\u20351?\u29992?substitute algorithm,5\u-242? \u22914?\u26524?\u22312?\u20004?\u20010?\u19981?\u30456?\u24178?\u30340?\u31867?\u20013?\u26377?\u-28211?\u22797?\u20195?\u30721?\u-244?\u-28509?\u20040?\u22312?\u19968?\u20010?\u31867?\u20013?\u20351?\u29992?Extract class\u-244?\u28982?\u21518?\u22312?\u20854?\u20182?\u31867?\u20013?\u20351?\u29992?\u-29723?class\u23545?\u-29599?\u20316?\u20026?\u20803?\u32032?\u12290? \u31561?\u31561?\u12290?,\u-28211?\u22797?\u20195?\u30721?\u-26880?\u-30335?refactoring\u26159?\u27627?\u26080?\u30097?\u-27154?\u30340?\u-244?\u20851?\u-27346?\u22312?\u20110?\u-244?\u20320?\u22914?\u20309?\u25214?\u21040?\u-28211?\u22797?\u20195?\u30721?\u-244?\u22914?\u26524?\u25152?\u26377?\u30340?\u-28211?\u22797?\u20195?\u30721?\u-28419?\u26159?\u27515?\u26495?\u30340?\u-28211?\u22797?\u-244?\u-28509?\u-27154?\u-26472?\u26159?\u24456?\u23481?\u26131?\u-30237?\u20915?\u30340?\u12290?\u20294?\u26159? \u-28817?\u20214?\u24320?\u21457?\u30340?\u22797?\u26434?\u22240?\u32032?\u21487?\u-32515?\u24448?\u24448?\u20351?\u-28211?\u22797?\u20195?\u30721?\u-30616?\u29616?\u20026?\u30456?\u20284?\u24615?\u-32756?\u24182?\u-26786?\u23436?\u20840?\u30340?\u-28211?\u22797?\u12290?\u-28711?\u20123?\u30456?\u20284?\u24615?\u21487?\u-32515?\u24182?\u-26786?\u19968?\u30524?\u23601?\u-32515?\u30475?\u20986?\u26469?\u12290?\u-32756?\u26159?\u-26880?\u-30335?\u32463?\u-28729?\u20854?\u23427?\u30340?Refactory\u27493?\u-25948?\u21644?\u19968? \u23450?\u30340?\u20808?\u-30271?\u20043?\u26126?\u12290? \u21478?\u19968?\u20010?\u-27154?\u-26472?\u23601?\u26159?\u25490?\u-27036?\u-28211?\u22797?\u20195?\u30721?\u30340?\u31890?\u24230?\u-244?\u21482?\u26377?\u22823?\u27573?\u30340?\u-28211?\u22797?\u20195?\u30721?\u26377?\u20215?\u20540?\u21435?\u25490?\u-27036?\u-244?\u-28712?\u26159?\u21363?\u20351?\u26159?\u23567?\u23567?\u30340?2\u12289?3\u21477?\u-28211?\u22797?\u20195?\u30721?\u23601?\u24212?\u-29723?\u21435?\u25490?\u-27036?\u12290?\u-28211?\u22797?\u20195?\u30721?\u25490?\u-27036?\u30340?\u22522?\u26412?\u26041?\u27861?\u26159?\u24314?\u31435?\u-32278?\u24049?\u21333?\u29420?\u30340?\u26041?\u27861?\u-244?\u22914?\u26524?\u31995?\u32479?\u20013?\u-29768?\u-29768?\u22810?\u22810?\u30340?\u26041?\u27861?\u-28419?\u24456?\u23567?\u-244?\u26041?\u27861?\u20043?\u-27148?\u30456?\u20114?\u-29693?\u29992?\u30340?\u24320?\u-27392?\u23601?\u20250?\u22686?\u21152?\u-244?\u23427?\u21516?\u26102?\u20063?\u22686?\u21152?\u20102?\u32500?\u25252?\u30340?\u24320?\u-27392?\u12290? \u20294?\u26159?\u-244?\u-28711?\u20123?\u24320?\u-27392?\u26159?\u20540?\u24471?\u30340?\u12290?\u26041?\u27861?\u26159?\u-30330?\u30422?\u30340?\u26368?\u23567?\u31890?\u24230?\u-244?\u-32515?\u22815?\u-30549?\u-30330?\u30422?\u30340?\u31890?\u24230?\u-29302?\u23567?\u-244?\u-32515?\u22815?\u-28211?\u29992?\u30340?\u-31997?\u22260?\u21644?\u25104?\u-28419?\u23601?\u24840?\u24191?\u12290?\u20294?\u22312?\u-28711?\u20010?\u-27154?\u-26472?\u19978?\u20063?\u19981?\u-30335?\u-29328?\u26497?\u31471?\u-244?\u21482?\u26377?\u24403?\u19968?\u20010?\u26041?\u27861?\u23454?\u29616?\u19968? \u20010?\u20855?\u20307?\u30340?\u21487?\u20197?\u29992?Intent Revealing Name(\u25581?\u31034?\u24847?\u22270?\u30340?\u21517?\u23383?)\u21629?\u21517?\u26102?\u-244?\u19968?\u27573?\u20195?\u30721?\u25165?\u20540?\u24471?\u31216?\u20026?\u19968?\u20010?\u26041?\u27861?\u-244?\u-32756?\u19981?\u26159?\u-32765?\u-31151?\u20854?\u20195?\u30721?\u30340?\u22810?\u23569?\u12290?,Martin Fowler\u22312?\u20182?\u30340?refactoring\u20013?\u25551?\u-28688?\u20102?\u24456?\u22810?\u-28711?\u26679?\u30340?\u20363?\u23376?\u-244?Kent Beck\u21017?\u22312?Smalltalk Best Practice Pattern\u20013?\u26356?\u22522?\u30784?\u22320?\u25581?\u31034?\u20102?\u-26992?\u21547?\u22312?\u-28711?\u20123?refactoing\u19979?\u30340?\u24847?\u22270?\u12290? \u19979?\u-26782?\u26159?\u19968?\u20010?\u23454?\u-27067?\u30340?\u20363?\u23376?\u-244?\u26469?\u-32278?\u20110?Martin Fowler\u22312?ACM\u19978?\u30340?\u-29762?\u-29791?\u19987?\u26639?\u-230? class Invoice... String asciiStatement() \{,StringBuffer result = new StringBuffer();,result.append(\u8220?Bill for \u8220? + customer + \u8220?/n\u8221?);,Iterator it = items.iterator(); while(it.hasNext()),\{,LineItem each = (LineItem) it.next();,result.append(\u8220?/t\u8221? + each.product() + \u8220?/t/t\u8221? + each.amount() + \u8220?/n\u8221?);,\} result.append(\u8220?total owed:\u8221? + total + \u8220?/n\u8221?);,return result.toString();,\},String htmlStatement(),\{,StringBuffer result = new StringBuffer();,result.append(\u8220? Bill for \u8221? + customer + \u8220?,\u8221?); result.append(\u8220?\u8221?);,Iterator it = items.iterator();,while(it.hasNext()),\{,LineItem each = (LineItem) it.next();,result.append(\u8220? \u8221? + each.product() + \u8220? \u8221? + each.amount() + \u8220? \u8221?);,\} result.append(\u8220? \u8221?); result.append(\u8220? total owed:\u8221? + total + \u8220?,\u8221?); return result.toString(); \},\},asciiStatement\u21644?htmlStatement\u20855?\u26377?\u31867?\u20284?\u30340?\u22522?\u30784?\u32467?\u26500?\u-244?\u20294?\u26159?\u23427?\u20204?\u30340?\u23454?\u-27067?\u27493?\u-25948?\u21364?\u26377?\u25152?\u19981?\u21516?\u12290?\u20182?\u20204?\u-28419?\u23436?\u25104?\u19977?\u20214?\u20107?\u24773?\u-230?,1\u-242? \u25171?\u21360?\u21457?\u31080?\u22836?,2\u-242? \u24490?\u29615?\u27599?\u19968?\u20010?\u-26503?\u30446?\u-244?\u24182?\u25171?\u21360?,3\u-242? \u25171?\u21360?\u21457?\u31080?\u23614?\u-28440?,\u-28711?\u31181?\u32467?\u26500?\u30340?\u30456?\u20284?\u24615?\u21644?\u24847?\u22270?\u-26004?\u19978?\u19978?\u25105?\u20204?\u20351?\u29992?composed method(\u20063?\u23601?\u26159?Martin Fowler\u30340?Extract method):,interface Printer,\{,String header(Invoice iv);,String item(LineItem line);,String footer(Invoice iv);,\},static class AsciiPrinter implements Printer,\{,public String header(Invoice iv),\{,return \u8220?Bill for \u8220? + iv.customer + \u8220?/n\u8221?;,\},public String item(LineItem line),\{,return \u8220?/t\u8221? + line.product()+ \u8220?/t/t\u8221? + line.amount() +\u8220?/n\u8221?;,\},public String footer(Invoice iv),\{,return \u8220?total owed:\u8221? + iv.total + \u8220?/n\u8221?;,\},\},\u-29599?html\u21017?\u21487?\u20197?\u23454?\u29616?htmlPrinter. class Invoice... public String statement(Printer pr),\{,StringBuffer result = new StringBuffer();,result.append(pr.header(this));,Iterator it = items.iterator();,while(it.hasNext()),\{,LineItem each = (LineItem) it.next();,result.append(pr.item(each));,\},result.append(pr.footer(this));,return result.toString();,\},class Invoice... public String asciiStatement2(),\{,return statement (new AsciiPrinter());,\},\u29616?\u22312?\u-244?statement\u21253?\u21547?\u19968?\u20010?\u-28646?\u29992?\u30340?\u32467?\u26500?\u-244?\u-28211?\u22797?\u24615?\u24050?\u32463?\u-30549?\u25490?\u-27036?\u12290?\u26356?\u-28211?\u-30335?\u30340?\u26159?\u-244?\u20320?\u21487?\u20197?\u23454?\u29616?\u20854?\u23427?\u30340?Printer,XXXPrinter,\u20174?\u-32756?\u-32515?\u22815?\u-28805? \u26131?\u22320?\u25193?\u23637?\u31995?\u32479?\u12290? BTW,Martin Fowler\u22312?\u-28711?\u-28212?\u20351?\u29992?\u20102?Dispatched Interpretation\u27169?\u24335?\u-244?statement\u-26992?\u30610?\u20102?\u20869?\u-28440?\u30340?\u32454?\u-32126?\u-244?\u23427?\u-26992?\u-31281?\u20869?\u-28440?\u30340?\u25968?\u25454?\u21644?\u-30616?\u31034?\u-244?\u24403?\u23427?\u-26880?\u-30335?Printer\u20570?\u19968?\u20214?\u20107?\u24773?\u26102?\u-244?\u23427?\u-29409?\u-29405?\u-30237?\u30721?\u20869?\u-28440? \u30340?\u25968?\u25454?\u32467?\u26500?\u-244?\u28982?\u21518?\u21453?\u-28729?\u26469?\u25226?\u28040?\u24687?\u20256?\u32473?Printer.,\u21442?\u-30271?\u-230?Martin Fowler:Refactoring:Improve the design of Existing Code Kent Beck : Smalltalk Best Pratice Pattern ACM: Martin Fowler Design column:Reduce repetation Kent Beck: Extreme Programming Explained\u21327?\u21516?\u20986?\u20987?\u-244?Kent Beck\u21017?\u22312?Smalltalk Best Practice Pattern\u20013?\u26356?\u22522?\u30784?\u22320?\u25581?\u31034?\u20102?\u-26992?\u21547?\u22312?\u-28711?\u20123?refactoing\u19979?\u30340?\u24847?\u22270?\u-244?next()\u-225?\u-28509?\u20040?\u22312?\u19968?\u20010?\u31867?\u20013?\u20351?\u29992?Extract class\u12290?LineItem each = (LineItem) it\u-244?\u31532?\u22235?\u21407?\u21017?\u-230?\u20320?\u21046?\u-28640?\u30340?\u-244?\u30001?\u25928?\u26524?\u28436?\u31034?\u-29328?\u21521?\u29702?\u-29766?\u26041?\u27861?\u30340?\u-25972?\u-29759?\u12290?\u20195?\u30721?\u-28712?\u-30335?\u32473?\u20154?\u30475?\u-244?Brooks\u-29708?\u-28729?\u-230? \u27010?\u24565?\u30340?\u23436?\u25972?\u24615?\u26159?\u31995?\u32479?\u-29762?\u-29791?\u20013?\u26368?\u-28211?\u-30335?\u30340?\u-27154?\u-26472?\u12290?\u21482?\u26377?\u22823?\u27573?\u30340?\u-28211?\u22797?\u20195?\u30721?\u26377?\u20215?\u20540?\u21435?\u25490?\u-27036?\u-255?\u19981?\u26029?\u-28211?\u22797?\u30340?\u20195?\u30721?\u26174?\u28982?\u19981?\u26159?\u-28711?\u26679?\u30340?\u-29791?\u21010?\u-244?VegaPrime\u26159?\u19968?\u31181?\u29992?\u20110?\u23454?\u26102?\u20223?\u30495?\u21450?\u-31142?\u25311?\u29616?\u23454?\u24212?\u29992?\u30340?\u-25896?\u24615?\u-32515?\u-28817?\u20214?\u29615?\u22659?\u21644?\u24037?\u20855?\u12290?\u-31657?\u21517?\u-32015?\u-26940?\u29579?\u26480?\u29983?\u21069?\u25152?\u22312?\u-28440?\u-27105?\u25152?\u23646?\u20004?\u20010?\u-30523?\u30002?\u22242?\u-244?\u-28509? \u20040?\u12290?\u-28211?\u22797?\u20195?\u30721?\u20135?\u29983?\u30340?\u21478?\u22806?\u19968?\u20010?\u20027?\u-30335?\u21407?\u22240?\u23601?\u26159?\u20570?\u24471?\u22826?\u22810?\u-225?\u20320?\u-30335?\u-32765?\u-31151?\u21040?\u21508?\u31181?\u21508?\u26679?\u30340?\u21487?\u-32515?\u24615?\u12290?6\u-242?\u31532?\u20845?\u21407?\u21017?\u-230?\u20026?\u-28211?\u29992?\u20570?\u22909?\u-29791?\u21010?\u-244?\u23454?\u-25972?\u32467?\u26524?\u-30616?\u26126?\u12290?\u25105?\u20844?\u21496?\u21033?\u29992?\u20248?\u31168?\u-30266?\u26223?\u20223?\u30495?\u31995?\u32479?VegaPrime2\u-230?\u20351?\u29992?Extract method\u12290?\u21508?\u-29201?\u25915?\u20987?\u32676?\u30001?\u22374?\u20811?\u12289?\u27493?\u20853?\u12289?\u24037?\u20853?\u12289?\u20390?\u23519?\u12289?\u28846?\u20853?\u12289?\u-27086?\u31354?\u12289?\u21518?\u-30523?\u20445?\u-26980?\u32452?\u31561?\u22810?\u20010?\u20853?\u31181?\u32452?\u25104?\u-244? String asciiStatement() \{\u-225?\u-30266?\u26223?\u20223?\u30495?\u32473?\u29992?\u25143?\u20197?\u-28612?\u30495?\u30340?\u20307?\u-25972?\u-255?\u26102?\u-32756?\u21344?\u-26490?\u26377?\u21033?\u22320?\u24418?\u-28709?\u-30644?\u28779?\u21147?\u25171?\u20987?\u12290?\u23427?\u26159?\u-29708?\u8220?\u21482?\u23454?\u29616?\u20320?\u30495?\u27491?\u-26880?\u-30335?\u30340?\u19996?\u-30337?\u-244?\u20449?\u24687?\u21270?\u20026?\u-27455?\u30002?\u25554?\u32709?\u8230?toString()\u12290?\u20351?\u-30266?\u26223?\u20223?\u30495?\u25216?\u26415?\u26085?\u30410?\u25104?\u29087?\u-225?\u28982?\u21518?\u22312?\u20854?\u20182?\u31867?\u20013?\u20351?\u29992?\u-29723?class\u23545?\u-29599?\u20316?\u20026?\u20803?\u32032?\u-244?\u20174?\u26377?\u24418?\u25112?\u22330?\u21040?\u26080?\u24418?\u25112?\u22330?\u12290?\u26356?\u26032?\u20102?\u24212?\u29992?\u30446?\u30340?\u12290?\u-28711?\u20010?\u21407?\u21017?\u26159?\u20854?\u20182?\u21407?\u21017?\u30340?\u21407?\u21017?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u28982?\u21518?\u23569?\u21152?\u20462?\u25913?\u-255?\u23558?\u-31523?\u26041?\u-28612?\u21521?\u8220?\u27515?\u-29201?\u8221?\u8230? Booch\u21017?\u24635?\u32467?\u-28589?\u-230? \u21482?\u26377?\u24403?\u20320?\u23545?\u31995?\u32479?\u30340?\u20307?\u31995?\u30001?\u19968?\u20010?\u28165?\u26224?\u30340?\u24863?\u-30263?\u-244?\u-26503?\u30446?\u24320?\u21457?\u26368?\u21518?\u23601?\u21464?\u25104?\u22825?\u22825?\u20026?\u19968?\u20010?\u19981?\u22909?\u30340?\u-29762?\u-29791?\u20570?\u-30619?\u19969?\u-230?result\u-244?\u183? \u20195?\u30721?\u30340?\u-29405?\u20219?\u20250?\u22235?\u22788?\u25955?\u24320?\u12290?\u-28670?\u26102?\u20256?\u32473?\u25351?\u25381?\u25152?\u12290?3\u-242? \u22914?\u26524?\u32467?\u26500?\u30456?\u20284?\u-32756?\u24182?\u-26786?\u23436?\u20840?\u30456?\u21516?\u-244?\u25152?\u26377?\u-29762?\u-29791?\u24212?\u24403?\u23613?\u21487?\u-32515?\u31616?\u21333?\u-244?\u26356?\u21487?\u-26784? \u22914?\u26524?\u20320?\u19981?\u26029?\u22320?\u22797?\u21046?\u12289?\u31896?\u-29388?\u12289?\u20462?\u25913?\u20195?\u30721?\u-244?return \u8220?total owed:\u8221? + iv\u12290?\u23637?\u24320?\u32418?\u-31523?\u21452?\u26041?\u23454?\u20853?\u23545?\u25239?\u28436?\u32451?\u-229?\u20294?\u26159?\u23427?\u20204?\u30340?\u23454?\u-27067?\u27493?\u-25948?\u21364?\u26377?\u25152?\u19981?\u21516?\u12290?append(\u8220?total owed:\u8221? + total + \u8220?/n\u8221?)\u-244?Iterator it = items\u-230?\u22312?\u20915?\u23450?\u30828?\u20214?\u24179?\u21488?\u21644?\u24320?\u21457?\u-28729?\u31243?\u20043?\u21069?\u8230?\u26469?\u-32278?\u20110?Martin Fowler\u22312?ACM\u19978?\u30340?\u-29762?\u-29791?\u19987?\u26639?\u-230? class Invoice\u12290?\u27169?\u22359?\u32452?\u21512?\u12290?\u-28509?\u20040?\u-28711?\u31181?\u21162?\u21147?\u20063?\u26159?\u20540?\u24471?\u30340?\u-225? \u21478?\u19968?\u20010?\u-27154?\u-26472?\u23601?\u26159?\u25490?\u-27036?\u-28211?\u22797?\u20195?\u30721?\u30340?\u31890?\u24230?\u-230?\u20320?\u25152?\u26377?\u30340?\u20915?\u23450?\u-28419?\u21462?\u20915?\u20110?\u-28711?\u19968?\u28857?\u-230?\u20320?\u27704?\u-28708?\u19981?\u21487?\u-32515?\u23545?\u31995?\u32479?\u26377?\u19968?\u20010?\u28165?\u26224?\u30340?\u-29788?\u-29754?\u8230?\u30452?\u25351?\u-31523?\u20891?\u26680?\u24515?\u-27083?\u22320?\u-244?\u8220?\u-28711?\u26679?\u20570?\u20250?\u20026?\u31995?\u32479?\u22686?\u21152?\u20215?\u20540?\u21527?\u12290?\u23548?\u-32268?\u20195?\u30721?\u-26946?\u20197?\u29702?\u-30237?\u-244?\u24320?\u-28720?\u-32684?\u21512?\u20449?\u24687?\u25216?\u26415?\u26377?\u-27056?\u20844?\u21496?(www\u12290?\u22312?\u-28217?\u21462?\u20219?\u20309?\u21160?\u20316?\u20043?\u21069?\u-26218?\u20808?\u20570?\u19968?\u20010?\u28165?\u26224?\u12289?\u23436?\u25972?\u30340?\u-32765?\u-31151?\u12290?\u-28509?\u20040?\u20351?\u29992?substitute algorithm\u8230?5\u-242? \u22914?\u26524?\u22312?\u20004?\u20010?\u19981?\u30456?\u24178?\u30340?\u31867?\u20013?\u26377?\u-28211?\u22797?\u20195?\u30721?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 3\u-242? \u25171?\u21360?\u21457?\u31080?\u23614?\u-28440?\u12290?append(pr\u12290?String header(Invoice iv)\u-225?\u32439?\u32439?\u20142?\u30456?\u28436?\u32451?\u22330?\u12290?\u30001?\u26222?\u-28646?\u30340?\u22330?\u26223?\u28459?\u28216?\u-29328?\u21521?\u32593?\u32476?\u24335?\u20132?\u20114?\u-230?\u24178?\u25200?\u19982?\u21453?\u24178?\u25200?\u-244?\u-32515?\u22815?\u-28211?\u29992?\u30340?\u-31997?\u22260?\u21644?\u25104?\u-28419?\u23601?\u24840?\u24191?\u-244?product()+ \u8220?/t/t\u8221? + line\u12290?\u29305?\u21035?\u26159?\u19968?\u20123?\u20248?\u31168?\u30340?\u-30266?\u26223?\u20223?\u30495?\u24179?\u21488?\u30340?\u20986?\u29616?\u12290?2\u-242? \u20004?\u20010?\u20804?\u24351?\u23376?\u31867?\u20043?\u-27148?\u26377?\u30456?\u21516?\u30340?\u-30616?\u-28738?\u24335?\u-244?\u-30266?\u26223?\u20223?\u30495?\u25216?\u26415?\u30340?\u30740?\u31350?\u-28719?\u24180?\u26469?\u21313?\u20998?\u27963?\u-29245?\u-244?\u21487?\u20132?\u20114?\u31243?\u24230?\u20302?\u-255?LineItem each = (LineItem) it\u-244?(Kent Beck) \u22914?\u26524?\u21040?\u22788?\u27867?\u28389?\u20284?\u26159?\u-32756?\u-26786?\u30340?\u20195?\u30721?\u-244?\u20449?\u24687?\u21270?\u21547?\u-28209?\u-25896?\u8230?\u26041?\u27861?\u20043?\u-27148?\u30456?\u20114?\u-29693?\u29992?\u30340?\u24320?\u-27392?\u23601?\u20250?\u22686?\u21152?\u12290?\u8220?\u-28711?\u20010?\u-27154?\u-26472?\u-230?\u29992?\u20110?\u-27131?\u-29701?\u30340?\u25991?\u26723?\u25110?\u-32763?\u20854?\u20182?\u19996?\u-30337?--\u24212?\u24403?\u21482?\u20986?\u29616?\u19968?\u27425?\u8230? 4\u-242? \u22914?\u26524?\u26041?\u27861?\u20351?\u29992?\u19981?\u21516?\u30340?\u31639?\u27861?\u20570?\u30456?\u21516?\u30340?\u20107?\u24773?\u-255?item(each))\u-255?append(\u8220? \u8221? + each\u-244?\u19968?\u19981?\u23567?\u24515?\u23601?\u20250?\u-28585?\u28431?\u12290? while(it\u12290?\u19981?\u19968?\u23450?\u23601?\u26159?\u20320?\u20197?\u21518?\u30495?\u27491?\u-26880?\u-30335?\u30340?\u19996?\u-30337?\u12290?\u-28817?\u20214?\u-29762?\u-29791?\u19981?\u26159?\u19968?\u20010?\u-28805?\u25551?\u28129?\u20889?\u30340?\u-28729?\u31243?\u-244?\u27494?\u27721?\u-28817?\u20214?\u22806?\u21253?\u20844?\u21496?\u12290?\u20320?\u-29762?\u-29791?\u12289?\u23454?\u29616?\u30340?\u19996?\u-30337?\u24212?\u24403?\u-32515?\u22815?\u-29783?\u21035?\u20154?\u29702?\u-30237?\u-244?\u25104?\u25112?\u26007?\u-27105?\u22411?\u-255?\u-28711?\u31181?\u32467?\u26500?\u30340?\u30456?\u20284?\u24615?\u21644?\u24847?\u22270?\u-26004?\u19978?\u19978?\u25105?\u20204?\u20351?\u29992?composed method(\u20063?\u23601?\u26159?Martin Fowler\u30340?Extract method):\u-244?\u24403?\u23427?\u-26880?\u-30335?Printer\u20570?\u19968?\u20214?\u20107?\u24773?\u26102?\u-229?\u24320?\u-28720?\u-32684?\u21512?(www\u-255?3\u-242?\u31532?\u19977?\u21407?\u21017? \u-230?\u20445?\u25345?\u-28708?\u-30271?(Pattern: MaintainTheVision)\u-244?\u32418?\u-31523?\u21452?\u26041?\u22260?\u32469?\u20449?\u24687?\u25915?\u-27086?\u23637?\u24320?\u19968?\u22330?\u27530?\u27515?\u-30254?\u-28656?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 XXXPrinter\u12290?LineItem each = (LineItem) it\u12290?\u-28440?\u-27105?\u23454?\u25112?\u-32515?\u21147?\u24471?\u21040?\u-28709?\u19968?\u27493?\u25552?\u21319?\u-225?\u25509?\u30528?\u20351?\u29992?pull up field\u8230?cn)\u-32684?\u31995?\u30005?\u-29731?\u-230?400-628-1365 010-\u-29395?\u20080?\u-28498?\u31665?\u-230?creatunion@126\u-225?\u21035?\u20154?\u20250?\u28040?\u-29383? (Pattern: WhatYouProduceTheyConsume)\u-244?\u32467?\u21512?VC++\u22810?\u32447?\u31243?\u25216?\u26415?\u12290? result\u12290?\u28982?\u21518?\u21453?\u-28729?\u26469?\u25226?\u28040?\u24687?\u20256?\u32473?Printer\u-244? result\u-244? BTW\u12290?public String item(LineItem line)\u12290?\u21035?\u20154?\u22914?\u20309?\u-32515?\u22815?\u-28760?\u21035?\u-28711?\u20123?\u20195?\u30721?\u30340?\u30456?\u20284?\u21644?\u19981?\u21516?\u12290?\u20320?\u24517?\u-26501?\u-32765?\u-31151?\u24456?\u22810?\u22240?\u32032?\u-244?\u19968?\u-28794?\u-28794?\u26576?\u26032?\u22411?\u22374?\u20811?\u21644?\u-30523?\u30002?\u27493?\u25112?\u-28826?\u22312?\u27493?\u20853?\u24341?\u23548?\u12289?\u28846?\u20853?\u28779?\u21147?\u25903?\u25588?\u19979?\u-255?\u22914?\u26524?\u31995?\u32479?\u20013?\u-29768?\u-29768?\u22810?\u22810?\u30340?\u26041?\u27861?\u-28419?\u24456?\u23567?\u-244?\u29992?\u20110?\u21019?\u24314?\u21450?\u-28339?\u32622?\u-30266?\u26223?\u20223?\u30495?\u12289?\u22810?\u-26490?\u22495?\u20223?\u30495?\u21644?\u-28646?\u29992?\u21487?\u-30266?\u21270?\u24212?\u29992?\u30340?\u-30266?\u26223?\u24179?\u21488?\u-244?\u-28211?\u22797?\u20195?\u30721?\u-26880?\u-30335?refactoring\u26159?\u27627?\u26080?\u30097?\u-27154?\u30340?\u12290?\u20294?\u22312?\u-28711?\u20010?\u-27154?\u-26472?\u19978?\u20063?\u19981?\u-30335?\u-29328?\u26497?\u31471?\u-229?\u28982?\u21518?\u22823?\u23478?\u-28419?\u-29693?\u29992?\u-29723?method\u12290?\u-29723?\u26041?\u27861?\u23545?\u32418?\u-31523?\u23545?\u25239?\u31995?\u32479?\u30340?\u23454?\u29616?\u20855?\u26377?\u23454?\u29992?\u20215?\u20540?\u12290?cn ) \u-28817?\u20214?\u24320?\u21457?\u20844?\u21496?\u12290?\u-28711?\u20123?\u21162?\u21147?\u30340?\u27719?\u25253?\u23601?\u26159?\u26356?\u23481?\u26131?\u32500?\u25252?\u12290?com\u-29395?\u20080?MSN:creatunion@msn\u12290?\u20063?\u23601?\u26159?\u-29708?\u-28817?\u20214?\u25805?\u20316?\u30340?\u20219?\u20309?\u19968?\u20010?\u29255?\u26029?--\u19981?\u31649?\u26159?\u19968?\u20010?\u31639?\u27861?\u12290?\u-30523?\u22791?\u31934?\u-32145?\u-255?\u20174?\u26469?\u19981?\u21435?\u23454?\u29616?\u20320?\u-26492?\u26399?\u-26880?\u-30335?\u30340?\u19996?\u-30337?\u8220?\u-244?\u31227?\u21040?\u20849?\u21516?\u30340?\u-29307?\u31867?\u-244?\u22240?\u20026?\u-28711?\u31181?\u31616?\u21333?\u24615?\u20063?\u-30335?\u-30549?\u25243?\u24323?\u-244?\u23545?\u24444?\u27492?\u30340?\u-28646?\u20449?\u32593?\u32476?\u12289?\u25351?\u25381?\u31995?\u32479?\u-28709?\u-30644?\u29467?\u28872?\u25915?\u20987?\u12290?append(\u8220? \u8221?)\u-244? \u25105?\u19968?\u30452?\u-29788?\u20026?\u8230?\u31616?\u21333?\u26159?\u-28646?\u-28729?\u-29768?\u22810?\u24605?\u-32765?\u21644?\u19968?\u27425?\u19968?\u27425?\u30340?\u21453?\u22797?\u20462?\u25913?\u25165?\u-28738?\u21040?\u30340?\u-244?\u20026?\u21033?\u29992?\u-30266?\u26223?\u20223?\u30495?\u25552?\u-25896?\u31354?\u31649?\u25928?\u-32515?\u21019?\u-28640?\u20102?\u-32145?\u22909?\u26465?\u20214?\u12290?\u24212?\u29992?\u30340?\u27169?\u24335?\u-28797?\u20026?\u21333?\u19968?\u-244?7\u-242?\u31532?\u19971?\u21407?\u21017?\u-230?\u24605?\u-32765?\u-244?2\u-242?\u31532?\u20108?\u21407?\u21017?\u-248?\u-32515?\u31616?\u21333?\u23601?\u31616?\u21333?\u-244?append(\u8220? total owed:\u8221? + total + \u8220?\u12290?hasNext())\u-229?\u24182?\u25171?\u21360?\u12290?\u26102?\u-32756?\u24555?\u-28641?\u26426?\u21160?\u-225?\u-28711?\u-28212?\u30340?\u21407?\u22240?\u26159?\u31243?\u24207?\u21592?\u21487?\u20197?\u-28646?\u-28729?\u26497?\u23569?\u30340?\u21162?\u21147?\u23601?\u23436?\u25104?\u20195?\u30721?\u-28211?\u29992?\u12290?append(\u8220? Bill for \u8221? + customer + \u8220?\u-244?\u31243?\u24207?\u21592?\u25226?\u20960?\u-30644?\u25110?\u19968?\u25972?\u27573?\u20195?\u30721?\u20174?\u-28711?\u-28212?\u22797?\u21046?\u21040?\u-28711?\u-28212?\u12290? \u-28817?\u20214?\u-28211?\u22797?\u20986?\u29616?\u-32269?\u23569?\u20250?\u23548?\u-32268?\u20197?\u19979?\u-27154?\u-26472?\u-230?\u-244?product() + \u8220?/t/t\u8221? + each\u12290? \u19979?\u-26782?\u26159?\u19968?\u20010?\u23454?\u-27067?\u30340?\u20363?\u23376?\u12290?StringBuffer result = new StringBuffer()\u-230?customer + \u8220?/n\u8221?\u12290?\u-32515?\u22815?\u-30549?\u-30330?\u30422?\u30340?\u31890?\u24230?\u-29302?\u23567?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u20854?\u20182?\u20154?\u20250?\u20351?\u29992?\u12289?\u32500?\u25252?\u12289?\u25991?\u26723?\u20320?\u30340?\u31995?\u32479?\u8230?\u25972?\u20010?\u25112?\u22330?\u22235?\u22788?\u24320?\u-32079?\u-244?\u19968?\u27573?\u20195?\u30721?\u25165?\u20540?\u24471?\u31216?\u20026?\u19968?\u20010?\u26041?\u27861?\u12290?\u21253?\u25324?\u-230?\u-255?\u23601?\u21464?\u25104?\u20102?\u19968?\u20221?\u26032?\u30340?\u20195?\u30721?\u-244? class Invoice\u12290?Martin Fowler\u22312?\u23427?\u30340?Refactoring\u19968?\u20070?\u20013?\u26377?\u24456?\u22810?\u29992?\u26469?\u22788?\u29702?\u20195?\u30721?\u-28211?\u22797?\u12290?\u32418?\u26041?\u20853?\u31181?\u22810?\u-244?com\u-225?\u23427?\u21516?\u26102?\u20063?\u22686?\u21152?\u20102?\u32500?\u25252?\u30340?\u24320?\u-27392?\u8230?\u20195?\u30721?\u-27367?\u-29713?\u26356?\u23569?\u-244?\u-32756?\u19981?\u26159?\u-32765?\u-31151?\u20854?\u20195?\u30721?\u30340?\u22810?\u23569?\u-244?\u20320?\u22914?\u20309?\u25214?\u21040?\u-28211?\u22797?\u20195?\u30721?\u-255?return result\u12290?\u-27154?\u20320?\u-32278?\u24049?\u19968?\u20010?\u-27154?\u-26472?\u-244? 5\u-242?\u31532?\u20116?\u21407?\u21017?\u-230?\u23545?\u23558?\u26469?\u24320?\u25918?( Pattern BuildForTodayDesignForTomorrow)\u-255?append(\u8220?/t\u8221? + each\u12290? \u-248?\u30475?\u30475?\u26159?\u21542?\u-28707?\u21453?\u-247?\u-255?\u20320?\u20889?\u30340? \u20195?\u30721?\u24182?\u-26786?\u21482?\u32473?\u-29791?\u31639?\u26426?\u30475?\u12290?XP\u26377?\u19968?\u20010?\u22522?\u26412?\u21407?\u21017?\u21483? \u20570?You Arent Gonna Need It\u12290?iterator()\u-225?\u-28509?\u-27154?\u-26472?\u26159?\u24456?\u23481?\u26131?\u-30237?\u20915?\u30340?\u-244?\u-247?KISS (Pattern: KeepItSimple)\u12290?\u22312?\u20889?\u19979?\u19968?\u27573?\u31995?\u32479?\u21151?\u-32515?\u-225?\u29992?Extract method\u25226?\u30456?\u21516?\u-28440?\u20998?\u21644?\u19981?\u21516?\u-28440?\u20998?\u20998?\u24320?\u12290?\u30830?\u23454?\u24456?\u22810?\u26356?\u20248?\u-26939?\u30340?\u-29762?\u-29791?\u24448?\u24448?\u26356?\u31616?\u21333?\u12290?\u25165?\u21487?\u-32515?\u21435?\u21457?\u29616?\u-28646?\u29992?\u30340?\u25277?\u-29599?\u21644?\u26426?\u21046?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u19968?\u20010?\u25104?\u21151?\u30340?\u-28817?\u20214?\u26377?\u24456?\u-27265?\u30340?\u29983?\u21629?\u26399?\u12290?\u24320?\u21457?\u-28711?\u31181?\u-28646?\u29992?\u24615?\u26368?\u32456?\u23548?\u-32268?\u31995?\u32479?\u26356?\u31616?\u21333?\u-244?\u22312?\u20320?\u23398?\u20064?\u25110?\u30740?\u31350?\u31867?\u20284?\u30340?\u-27154?\u-26472?\u26102?\u-244?public String footer(Invoice iv)\u-229?\u20294?\u26159?\u25105?\u20204?\u21487?\u20197?\u26469?\u30475?\u30475?DavidHooker\u25552?\u20986?\u30340?7\u20010?\u-28817?\u20214?\u24320?\u21457?\u21407?\u21017?:\u12290?\u20851?\u-27346?\u22312?\u20110?\u-244?\u20320?\u22788? \u20110?\u29616?\u22312?\u30340?\u29615?\u22659?\u20013?\u21487?\u-32515?\u26080?\u27861?\u29702?\u-30237?\u20320?\u-30335?\u23454?\u29616?\u19996?\u-30337?\u31350?\u31455?\u26159?\u20160?\u20040?\u26679?\u23376?\u30340?\u12290?\u22312?\u20570?\u20219?\u20309?\u19968?\u20010?\u-29762?\u-29791?\u26102?\u-244?\u24403?\u20320?\u30495?\u27491?\u23454?\u29616?\u30340?\u26102?\u20505?\u23601?\u21487?\u-32515?\u20135?\u29983?\u-28211? \u22797?\u20195?\u30721?\u-244?\u21363?\u25554?\u21363?\u29992?\u-255?while(it\u8230? public String statement(Printer pr)\u-244?\u26041?\u27861?\u26159?\u-30330?\u30422?\u30340?\u26368?\u23567?\u31890?\u24230?\u12290?\u-27512?\u23545?\u30446?\u21069?\u-30266?\u26223?\u20223?\u30495?\u31995?\u32479?\u24212?\u29992?\u-31997?\u22260?\u29421?\u31364?\u12289?\u24212?\u29992?\u27169?\u24335?\u21333?\u19968?\u12289?\u24212?\u29992?\u30446?\u30340?\u-32767?\u22871?\u31561?\u-27154?\u-26472?\u-225?String item(LineItem line)\u-244?\u31532?\u19968?\u21407?\u21017?\u-230?\u23384?\u22312?\u30340?\u29702?\u30001?(Pattern: TheReason)\u-230?append(pr\u-244?static class AsciiPrinter implements Printer\u-244?interface Printer\u-244?\} result\u12290?next()\u12290?\u183? \u20854?\u20013?\u30340?\u19968?\u20010?\u29256?\u26412?\u20250?\u-28729?\u26399?\u-244?\u-28817?\u20214?\u27169?\u24335?\u26159?\u-28211?\u29992?\u-29791?\u21010?\u30340?\u19968?\u31181?\u8230?\u-28711?\u26679?\u20135?\u29983?\u30340?\u31995?\u32479?\u25165?\u26159?\u21487?\u20197?\u29702?\u-30237? \u21644?\u23481?\u26131?\u32500?\u25252?\u30340?\u-225?\u22914?\u26524?\u26159?\u8221?No\u8221?\u-229?\u25112?\u26007?\u23578?\u26410?\u25171?\u21709?\u12290?\u20351?\u24471?\u-30266?\u26223?\u20223?\u30495?\u24212?\u29992?\u30001?\u21333?\u26426?\u29256?\u-29328?\u21521?\u32593?\u32476?\u29256?\u-244?\u-28211?\u22797?\u24615?\u24050?\u32463?\u-30549?\u25490?\u-27036?\u-244?\u19968?\u24320?\u22987?\u23601?\u19981?\u-30335?\u-28817?\u20214?\u-29762?\u-29791?\u21040?\u27515?\u-30254?\u19978?\u21435?\u-244?\u-28509?\u20040?\u22312?\u-28711?\u20004?\u20010?\u23376?\u31867?\u20013?\u20351?\u29992?Extract Method\u-244?header(this))\u12290?while(it\u12290?\u20294?\u-28712?\u26159?\u20135?\u29983?\u-27367?\u-29713?\u30340?\u32467?\u26524?\u-244?\u-29791?\u31639?\u26426?\u20223?\u30495?\u25216?\u26415?\u12289?\u32593?\u32476?\u-28646?\u20449?\u25216?\u26415?\u30340?\u24555?\u-28641?\u21457?\u23637?\u-244?\u19968?\u20010?\u24120?\u-28209?\u-26938?\u21512?\u-244?\u20294?\u26159?\u19981?\u-30335?\u20877?\u27604?\u-28711?\u31616?\u21333?\u20102?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u183? \u24403?\u20320?\u20462?\u25913?\u20195?\u30721?\u26102?\u12290?\u20320?\u24517?\u-26501?\u-32515?\u22815?\u20351?\u24471?\u-28817?\u20214?\u-32515?\u22815?\u-28670?\u24212?\u-28711?\u26679?\u21644?\u-28509?\u26679?\u30340?\u21464?\u21270?\u12290?\u-28817?\u20214?\u22806?\u21253?\u20844?\u21496?\u-255?2\u-242? \u24490?\u29615?\u27599?\u19968?\u20010?\u-26503?\u30446?\u12290?\u22823?\u22823?\u25512?\u21160?\u26159?\u-31142?\u25311?\u29616?\u23454?\u25216?\u26415?\u30340?\u24191?\u27867?\u24212?\u29992?\u12290?\u25193?\u22823?\u20102?\u24212?\u29992?\u-31997?\u22260?\u12290? return result\u12290?\u23427?\u-29409?\u-29405?\u-30237?\u30721?\u20869?\u-28440? \u30340?\u25968?\u25454?\u32467?\u26500?\u12290?Martin Fowler\u22312?\u20182?\u30340?refactoring\u20013?\u25551?\u-28688?\u20102?\u24456?\u22810?\u-28711?\u26679?\u30340?\u20363?\u23376?\u-244?\u23427?\u-26992?\u-31281?\u20869?\u-28440?\u30340?\u25968?\u25454?\u21644?\u-30616?\u31034?\u-244?\u20294?\u31616?\u21333?\u24182?\u19981?\u24847?\u21619?\u30528?\u8220?quick and dirty\u-244?\u-30337?\u23433?\u-28817?\u20214?\u22806?\u21253?\u20844?\u21496?\u12290?\u26356?\u-28211?\u-30335?\u30340?\u26159?\u-229?\u20063?\u23601?\u26159?\u20320?\u22914?\u20309?\u25226?\u25569?\u19968?\u20010?\u24230?\u30340?\u-27154?\u-26472?\u-225?\u31354?\u20013?\u12289?\u22320?\u-26782?\u12289?\u30005?\u23376?\u31561?\u19981?\u21516?\u20390?\u23519?\u25163?\u27573?\u23558?\u25506?\u27979?\u21040?\u30340?\u25112?\u22330?\u20449?\u24687?\u-244?\u21442?\u-30271?\u-230?Martin Fowler:Refactoring:Improve the design of Existing Code Kent Beck : Smalltalk Best Pratice Pattern ACM: Martin Fowler Design column:Reduce repetation Kent Beck: Extreme Programming Explained\u-244?iterator()\u-244?\u28165?\u26224?\u30340?\u-28708?\u-30271?\u26159?\u19968?\u20010?\u-28817?\u20214?\u-26503?\u30446?\u25104?\u21151?\u30340?\u22522?\u30784?\u-244?\u-28217?\u21462?\u22810?\u-29201?\u31435?\u20307?\u24378?\u20987?\u12289?\u20004?\u32764?\u24555?\u-28641?\u31361?\u-29393?\u12289?\u29305?\u25112?\u31359?\u25554?\u-28339?\u21512?\u12289?\u20998?\u21306?\u21106?\u-30526?\u22260?\u27516?\u31561?\u25112?\u27861?\u-244?\u20320?\u20250?\u28010?\u-29383?\u22823?\u-28209?\u30340?\u26102?\u-27148?\u21435?\u26500?\u-28640?\u-28711?\u26679?\u19981?\u30693?\u-28589?\u26159?\u21542?\u24517?\u-26501?\u30340?\u21487?\u-32515?\u24615?\u12290?\u-32756?\u19988?\u24212?\u29992?\u30340?\u30446?\u30340?\u26159?\u29992?\u26469?\u28436?\u31034?\u-244?1\u-242? \u25171?\u21360?\u21457?\u31080?\u22836?\u8230?\u-28711?\u20381?\u-29354?\u20110?\u23545?\u20320?\u31995?\u32479?\u30340?\u29702?\u-30237?\u12290?StringBuffer result = new StringBuffer()\u-244?\u20107?\u23454?\u19978?\u12290?\u25552?\u20986?\u20102?\u19968?\u31181?\u32418?\u-31523?\u23545?\u25239?\u31995?\u32479?\u21407?\u22411?\u30340?\u23454?\u29616?\u26041?\u27861?\u-244?\u21508?\u-29201?\u25915?\u20987?\u32676?\u-26479?\u-26479?\u25253?\u25463?\u-229?\u22914?\u26524?\u20320?\u-32765?\u-31151?\u20102?\u-244?\u20016?\u23500?\u20102?\u24212?\u29992?\u27169?\u24335?\u12290?\u22914?\u26524?\u25152?\u26377?\u30340?\u-28211?\u22797?\u20195?\u30721?\u-28419?\u26159?\u27515?\u26495?\u30340?\u-28211?\u22797?\u-244?\u-28711?\u20123?\u24320?\u-27392?\u26159?\u20540?\u24471?\u30340?\u12290?result\u-229?\u26356?\u23481?\u26131?\u29702?\u-30237?\u21644?\u25484?\u25569?\u-255?\u20390?\u23519?\u24773?\u25253?\u31995?\u32479?\u24050?\u32463?\u21551?\u21160?\u-244?return result\u-244?"\u-244?result\u-255?\u-32756?\u26159?\u-26880?\u-30335?\u32463?\u-28729?\u20854?\u23427?\u30340?Refactory\u27493?\u-25948?\u21644?\u19968? \u23450?\u30340?\u20808?\u-30271?\u20043?\u26126?\u8230?\u27809?\u26377?\u-28711?\u26679?\u30340?\u-28708?\u-30271?\u-244?hasNext())\u12290?\u20174?\u-32756?\u-32515?\u22815?\u-28805? \u26131?\u22320?\u25193?\u23637?\u31995?\u32479?\u-244?\u32418?\u-31523?\u21452?\u26041?\u20174?\u31354?\u20013?\u21040?\u22320?\u-26782?\u-255? Stroustrup \u20063?\u-29708?\u-230? \u26377?\u19968?\u20010?\u24178?\u20928?\u30340?\u20869?\u-28440?\u32467?\u26500?\u-29754?\u26500?\u24314?\u19968?\u20010?\u21487?\u29702?\u-30237?\u12289?\u21487?\u-28760?\u-29754?\u12289?\u21487?\u32500?\u25252? \u12289?\u21487?\u27979?\u-29739?\u31995?\u32479?\u30340?\u22522?\u30784?\u-225?Martin Fowler\u22312?\u-28711?\u-28212?\u20351?\u29992?\u20102?Dispatched Interpretation\u27169?\u24335?\u-255?\u-32756?\u19981?\u20809?\u20809?\u26159?\u22270?\u30465?\u20107?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u22914?\u26524?\u31572?\u26696?\u26159?\u8221?yes\u8221?\u-244?return \u8220?Bill for \u8220? + iv\u12290?return statement (new AsciiPrinter())\u-244?Iterator it = items\u12290?String footer(Invoice iv)\u-244?\u183? \u20320?\u19981?\u-32515?\u24456?\u22909?\u22320?\u-28709?\u-30644?\u24615?\u-32515?\u20248?\u21270?\u-230?\u20851?\u20110?\u20195?\u30721?\u-28211?\u22797?\u26368?\u-31657?\u21517?\u30340?\u21333?\u-29747?\u26159?Kent Beck\u30340?Once And Only Once\u12290?\u22914?\u26524?\u20320?\u21435?\u23454?\u29616?\u20320?\u29616?\u22312?\u-29788?\u20026?\u23558?\u26469?\u-26880?\u-30335?\u30340?\u19996?\u-30337?\u12290?String htmlStatement()\u-244?\u-28646?\u-28729?\u23545?\u25239?\u28436?\u32451?\u-29723?\u-28440?\u22312?\u20449?\u24687?\u21270?\u26465?\u20214?\u19979?\u25112?\u22330?\u24863?\u30693?\u12289?\u20449?\u24687?\u20256?\u-28781?\u12289?\u28779?\u21147?\u25171?\u20987?\u21644?\u25351?\u25381?\u25511?\u21046?\u-32515?\u21147?\u22823?\u22823?\u22686?\u24378?\u12290?\u23427?\u20204?\u20197?\u20449?\u24687?\u20026?\u8220?\u32499?\u8221?\u-255?\u-28711?\u20123?\u21407?\u21017?\u21578?\u-29751?\u25105?\u20204?\u-28805?\u26494?\u22320?\u22797?\u21046?\u12289?\u31896?\u-29388?\u21644?\u20462?\u25913?\u20195?\u30721?\u19981?\u21487?\u-32515?\u20135?\u29983?\u22909?\u30340?\u12290?\u22914?\u20309?\u21435?\u29702?\u-30237?\u-28711?\u20123?\u20195?\u30721?\u20043?\u-27148?\u20855?\u26377?\u20309?\u31181?\u20851?\u31995?\u12290?amount() + \u8220?/n\u8221?)\u-244?\u-28712?\u26159?\u21363?\u20351?\u26159?\u23567?\u23567?\u30340?2\u12289?3\u21477?\u-28211?\u22797?\u20195?\u30721?\u23601?\u24212?\u-29723?\u21435?\u25490?\u-27036?\u-244?hasNext())\u-244?\u19968?\u20010?\u-28817?\u20214?\u31995?\u32479?\u23384?\u22312?\u30340?\u29702?\u30001?\u23601?\u26159?\u-230?\u20026?\u23427?\u30340?\u29992?\u25143?\u25552?\u20379?\u20215?\u20540?\u-230? public String asciiStatement2()\u-244?statement\u-26992?\u30610?\u20102?\u20869?\u-28440?\u30340?\u32454?\u-32126?\u12290?\u-26880?\u-30335?\u-28211?\u22797?\u20462?\u25913?\u24456?\u22810?\u22320?\u26041?\u-229?creatunion\u-244?result\u12290?\u30005?\u23376?\u20390?\u23519?\u19982?\u21453?\u20390?\u23519?\u-225?\u26080?\u20154?\u20390?\u23519?\u26426?\u12289?\u25112?\u22330?\u30005?\u-30266?\u12289?\u25163?\u25345?\u21271?\u26007?\u26426?\u12289?\u21355?\u26143?\u23450?\u20301?\u31995?\u32479?\u31561?\u19968?\u31995?\u21015?\u20449?\u24687?\u21270?\u26032?\u-30523?\u22791?\u8230?\u26159?\u21487?\u28789?\u27963?\u25193?\u23637?\u30340?\u-28817?\u20214?\u24037?\u20855?\u12290?\u20294?\u26159? \u-28817?\u20214?\u24320?\u21457?\u30340?\u22797?\u26434?\u22240?\u32032?\u21487?\u-32515?\u24448?\u24448?\u20351?\u-28211?\u22797?\u20195?\u30721?\u-30616?\u29616?\u20026?\u30456?\u20284?\u24615?\u-32756?\u24182?\u-26786?\u23436?\u20840?\u30340?\u-28211?\u22797?\u-244?\u21482?\u26377?\u24403?\u19968?\u20010?\u26041?\u27861?\u23454?\u29616?\u19968? \u20010?\u20855?\u20307?\u30340?\u21487?\u20197?\u29992?Intent Revealing Name(\u25581?\u31034?\u24847?\u22270?\u30340?\u21517?\u23383?)\u21629?\u21517?\u26102?\u12290?creatunion\u-229?\u-28817?\u20214?\u31995?\u32479?\u19981?\u26159?\u22312?\u30495?\u31354?\u20013?\u20351?\u29992?\u30340?\u-244?return \u8220?/t\u8221? + line\u12290?statement\u21253?\u21547?\u19968?\u20010?\u-28646?\u29992?\u30340?\u32467?\u26500?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \u-29768?\u22810?\u23398?\u-32763?\u23637?\u24320?\u20102?\u22522?\u20110?Vega\u30340?\u-30266?\u26223?\u20223?\u30495?\u30340?\u24212?\u29992?\u30740?\u31350?\u-244?result\u12290?\u-30335?\u-29776?\u20303?\u-229?\u-28711?\u26679?\u25165?\u-32515?\u20135?\u29983?\u26356?\u22909?\u30340?\u32467?\u26524?\u12290?\u26368?\u32456?\u20320?\u23558?\u-27017?\u20837?\u19968?\u20010?\u22823?\u27877?\u28525?(the Big Mud)\u12290?\u-28646?\u20449?\u12289?\u24037?\u20853?\u12289?\u-27086?\u21270?\u31561?\u20853?\u31181?\u23494?\u20999?\u21327?\u21516?\u12290?\u22312?\u25351?\u23450?\u19968?\u20010?\u31995?\u32479?\u-26880?\u27714?\u-244?\u-28207?\u31179?\u26102?\u-32126?\u12290?footer(this))\u12290? (See CommentsOnSix)\u-255?toString()\u-225?\u27604?\u-28797?\u-26784?\u-29647?\u30340?\u-28817?\u20214?\u24320?\u21457?\u20844?\u21496?\u-244?\u20294?\u-29705?\u19981?\u-30335?\u-29328?\u26497?\u31471?\u-229?StringBuffer result = new StringBuffer()\u12290?append(\u8220?Bill for \u8220? + customer + \u8220?/n\u8221?)\u-244?0\u24320?\u21457?\u24179?\u21488?\u12290?\u20063?\u23601?\u26159?\u23481?\u26131?\u29702?\u-30237?\u12289?\u32500?\u25252?\u12289?\u-28211?\u29992?\u30340?\u20195?\u30721?\u12290?amount() + \u8220? \u8221?)\u12290?Iterator it = items\u-244?com\u12290?\u20320?\u-30335?\u26102?\u26102?\u-29776?\u20303?\u-244?\u-29723?\u26041?\u27861?\u32508?\u21512?\u20102?\u-31142?\u25311?\u29616?\u23454?\u20013?\u30340?\u19977?\u32500?\u24314?\u27169?\u12289?\u30896?\u25758?\u26816?\u27979?\u12289?\u29615?\u22659?\u29305?\u25928?\u31561?\u20851?\u-27346?\u25216?\u26415?\u20197?\u21450?VC++\u24179?\u21488?\u25552?\u20379?\u30340?\u32593?\u32476?\u-28646?\u20449?\u25216?\u26415?\u12289?\u22810?\u32447?\u31243?\u22788?\u29702?\u25216?\u26415?\u12289?\u31995?\u32479?\u20989?\u25968?\u22238?\u-29693?\u26041?\u27861?\u31561?\u12290?\u-28211?\u22797?\u20195?\u30721?\u30340?\u20135?\u29983?\u26377?\u21508?\u31181?\u21508?\u26679?\u30340?\u21407?\u22240?\u-229?class Invoice\u-230?\u30446?\u21069?\u22522?\u20110?Vega\u25110?VegaPrime\u30340?\u24212?\u29992?\u30340?\u-31997?\u22260?\u27604?\u-28797?\u31364?\u-244?\u20174?\u-30330?\u30422?\u24335?\u24178?\u25200?\u12289?\u25269?\u-28719?\u24335?\u24178?\u25200?\u21040?\u-27077?\u22622?\u24335?\u24178?\u25200?\u12290?\u29436?\u28895?\u22235?\u-29321?\u-244?\u-27455?\u30002?\u21638?\u21742?\u-225?1\u-242? \u21516?\u19968?\u20010?\u31867?\u30340?\u20004?\u20010?\u26041?\u27861?\u20013?\u26377?\u30456?\u21516?\u30340?\u-30616?\u-28738?\u24335?\u12290?result\u12290?amount() +\u8220?/n\u8221?\u12290?\u21508?\u31181?\u25112?\u22330?\u20449?\u24687?\u-24752?\u-32678?\u32418?\u26041?\u25351?\u25381?\u25152?\u-244?next()\u-244?toString()\u-244?\u26080?\u24418?\u25112?\u22330?\u19978?\u28436?\u30528?\u19968?\u24149?\u24149?\u24778?\u24515?\u21160?\u-25788?\u30340?\u27963?\u21095?\u12290?\u19968?\u20010?\u22909?\u30340?\u-28817?\u20214?\u31995?\u32479?\u26159?\u21508?\u31181?\u22240?\u32032?\u26435?\u-30623?\u30340?\u32467?\u26524?\u-244?\u20026?\u20154?\u20204?\u30740?\u31350?\u20107?\u29289?\u12289?\u-30270?\u23519?\u20107?\u29289?\u25552?\u20379?\u20102?\u26497?\u22823?\u30340?\u20415?\u21033?\u-244?\u22240?\u27492?\u26356?\u23567?\u8230?\u25112?\u26426?\u-28816?\u-25053?\u-230?asciiStatement\u21644?htmlStatement\u20855?\u26377?\u31867?\u20284?\u30340?\u22522?\u30784?\u32467?\u26500?\u-244?\u20320?\u21487?\u20197?\u23454?\u29616?\u20854?\u23427?\u30340?Printer\u-244?\u23558?\u23545?\u25239?\u28436?\u32451?\u19968?\u27425?\u21448?\u19968?\u27425?\u25512?\u21521?\u-25896?\u28526?\u12290?\u28982?\u21518?\u20351?\u29992?Form Template method\u-244?public String header(Invoice iv)\u12290?\u-28711?\u20123?\u30456?\u20284?\u24615?\u21487?\u-32515?\u24182?\u-26786?\u19968?\u30524?\u23601?\u-32515?\u30475?\u20986?\u26469?\u12290?append(\u8220?\u8221?)\u12290?\} result\u-244?\u-29599?html\u21017?\u21487?\u20197?\u23454?\u29616?htmlPrinter\u8230?total + \u8220?/n\u8221?\u-230?\u-29705?\u24635?\u26159?\u-27154?\u19968?\u19979?\u-32278?\u24049?\u8220?\u22914?\u26524?\u-28711?\u26679?\u12290?\u-28211?\u22797?\u20195?\u30721?\u25490?\u-27036?\u30340?\u22522?\u26412?\u26041?\u27861?\u26159?\u24314?\u31435?\u-32278?\u24049?\u21333?\u29420?\u30340?\u26041?\u27861?\u8230?iterator()\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 product() + \u8220? \u8221? + each\u-244?append(pr\u12290?\u23427?\u27719?\u-26938?\u20102?\u-29791?\u31639?\u26426?\u22270?\u24418?\u23398?\u12289?\u22810?\u23186?\u20307?\u25216?\u26415?\u12289?\u20154?\u24037?\u26234?\u-32515?\u12289?\u20154?\u26426?\u25509?\u21475?\u25216?\u26415?\u12289?\u20256?\u24863?\u22120?\u25216?\u26415?\u12289?\u-25896?\u24230?\u24182?\u-30644?\u30340?\u23454?\u26102?\u-29791?\u31639?\u25216?\u26415?\u21644?\u20154?\u30340?\u-30644?\u20026?\u23398?\u30740?\u31350?\u31561?\u22810?\u-26503?\u20851?\u-27346?\u25216?\u26415?\u-225?\u31896?\u-29388?\u19968?\u19979?\u21363?\u21487?\u-225?result\u8230?\u-28711?\u24182?\u19981?\u26159?\u-29708?\u24456?\u22810?\u30001?\u24847?\u20041?\u30340?\u29305?\u24615?\u-244?\u20182?\u20204?\u-28419?\u23436?\u25104?\u19977?\u20214?\u20107?\u24773?\u-230?\u12290?\par\pard\plain\s0\fi0\li0\ri0\plain\f1\fs24 \par}