⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oobject102305.htm

📁 UML基础(好)
💻 HTM
字号:
<html><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><!-- InstanceBegin template="/Templates/neirong.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" --> 
<title>UML软件工程组织</title>
<!-- InstanceEndEditable --> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable --> 
<style type="text/css">
<!--
@import url("style.css");
-->
</style>
</head>

<body>
<table width="760" height="38" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td width="129" align="center">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="100" height="71">
        <param name="movie" value="../images/logo.swf">
        <param name="quality" value="high">
        <embed src="logo-1.swf" tppabs="http://www.uml.org.cn/images/logo.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="100" height="71"></embed></object></td>
    <td width="631"><B><FONT color=#008080 
      size=6>UML</FONT><FONT color=#008080><FONT face=方正姚体 color=#008080 
      size=6>软件工程</FONT><FONT face=方正姚体 size=6>组织</FONT></FONT></B>
      <table width="50%" border="0" align="right" cellpadding="0" cellspacing="1">
        <tr>
          <td class="content"><div align="center" class="content"><a href="javascript:if(confirm('http://www.uml.net.cn/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.uml.net.cn/'" tppabs="http://www.uml.net.cn/" target="_blank" class="content_a">北京火龙果软件工程技术中心</a></div></td>
        </tr>
      </table></td>
  </tr>
</table>
<hr width="760" size="1" noshade>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0">
<tr> 
    <td height="56" align="center" valign="middle" class="title"> <B><FONT color=#ff0000 
size=3><!-- #BeginEditable "1" --></FONT>淺談物件導向設計樣式<span class="h2"><br>
      </span><FONT color=#ff0000  
size=3><!-- #EndEditable --></FONT></B></td>
  </tr>
  <tr> 
    <td height="40" align="center" class="formtitle"> <!-- #BeginEditable "2" -->作者:陳國生
      <p>日期︰2003/04/07</p>
      <!-- #EndEditable --></td>   
  </tr>
</table>
<table width="760" height="65" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td height="65" class="content"><!-- #BeginEditable "3" -->
      <table width="85%" border="0" align="center">
        <tr> 
          <td class="content">
            <div class="Section1" style="LAYOUT-GRID:  18pt none"> <font color="#000000">記得不久之前有位仁兄在點空間的留言板,寫了這麼一段留言,他說︰希望可以介紹一些物件導向理論的書或網站,但不要又是談一些汽車房子為例的。看了這一則留言,除了會心一笑之外,也感慨許多著書或介紹理論的作者,往往不是把一些艱澀的理論讓讀者去生吞活剝,或是不經意的舉一些似是而非的例子,讓讀著摸不著頭緒,但我的話說的輕鬆,要做起來真的很難,這問題到底出在哪裡,是作者表達不好,還是讀者的理解能力有待強化呢? 
              <p>吳明皓先生有一篇文章叫《<a href="OObject102306.htm" tppabs="http://www.uml.org.cn/oobject/OObject102306.htm">物件導向實例 – 
              是定理還是方法</a>》,裡面說了一句耐人尋味的話︰「</p>
              <p>很多人都會問為什麼我們要採用物件導向程式設計(OOP)的方式來設計系統呢?其實原因無他,就是要減少系統開發的時間以及出錯的機率。然而很遺憾的,在筆者接觸許多國內的案例中,雖然他們都是使用 
                Java、 Delphi、或者是 C++,但是卻鮮少有人真正使用物件導向的思維來設計程式,更甚者,連基本模組化的工作,都做不好的...。</p>
              <p>」這段話中,點出了一個很重要的觀點,那就是︰鮮少有人真正使用物件導向的思維來設計程式,為什麼我要舉這段話出來呢?聰明的讀者也許已經知道我想要表達什麼了,如果物件導向是武功密笈,作者是在教授武功的,你雖然學了武功,但可能依然無法克敵制勝,因為光是學了架式,是無法領略武學精髓的,這個精髓是什麼,那是一種思維。在吳先生的文中,是還舉了一個西遊記的遊戲,解說傳統模組化思維與物件導向思維的不同,使用比對的方式,對讀者了解思維這個抽象概念是很有幫助。</p>
              <p>現在個人想跟大家談的是設計樣式,但拉拉雜雜說了一些跟主題無關的東西,原因就是我想說的是一個檳榔攤的廣告看板設計,如果不講上面那一段,很多朋友會很奇怪,這個賣檳榔跟樣式有什麼關聯,正因為想要表達一種思維,思維簡單說就是一種想法,但是要表達這種抽象的東西,還是得透過實例來說。這個檳榔攤的故事是這樣的,檳榔攤的西施賣檳榔的時候,必須要把檳榔的價格標出來,如 
                20 粒 100 元,解決這個問題很簡單,用一張紅字條寫上價格,貼上去不就得了?嗯,話是沒錯,但兩天之後,問題來了,因為檳榔的價格波動很厲害,所以西施小姐必須經常更換紅條,那小姐反正閒閒沒事做,也不厭其煩的換,但過了一段時間,問題又來了,市場因為競爭的關係,出現了大小粒分級銷售的方式,小粒 
                20 粒 100 元,大粒 15 粒 100 元,所以原本換一張紅紙條變成要換兩張紅紙條,那個西施小姐開始有點慌了,每次這樣寫,也不是辦法,所以想了一個方法就是寫了一個 
                100 元 XX 粒,這 XX 粒是空白不填的,等到價格一變動,才把幾粒填上去。看到這裡,我想大家應該知道我想說什麼,這位西施小姐運用了一個物件導向設計的思維,就是區分變與不變,又把不變的部分固定起來, 
                形成一種樣式,成功的克服了檳榔價格變動的廣告問題。</p>
              <p>運用樣式我們可以輕易的解決一個特定的問題,這時候你可能會問,這些變動在一開始的時候,並沒有在設計的範圍內,也就是說始料所未及的,沒錯,我們沒有辦法一開始就去預測這個變化,只有等問題明確化之後,我們才能正視如何去因應變化,那如果變化是發生在系統最僵硬的部分,或者說整個系統設計根本就是僵硬的,這時候怎麼辦呢?我的答案是仍然得運用樣式去解決問題。假如當初西施小姐一開始不是用紅紙條來標示價格,而是在壓克力板印上無法塗改的價格,這時候解決的方法可能又不一樣了,克服系統的僵硬性,變成也是必須去面對的一個問題。如果我是那個西施小姐,也許我會把壓克力板上的價格與數量鋸成變成兩半,然後再製作一些不同數量的壓克力板去跟價格做組合,讓數量與價格由一對一關係,變成一對多的對應關係。實際上我這個虛擬的案例,後來也出現在檳榔攤的價格廣告上,讓數量與價格產生了多樣性的組合變化。</p>
              <p>如果你問我這個案例,是否可能產生銷售價格多變,而檳榔數量也會多變的情形呢?要是真的如此變化,又要如何去對應呢?這讓我想到一個笑話,說有一隻在店門口招呼客人的鸚鵡,拉左腳會喊︰『哈囉』,拉右腳則會喊︰『你好 
                』,有一個調皮的小孩子說︰『那如果左右腳一起拉的時候,會喊什麼呢?』那隻鸚鵡一聽,說了一句話︰『你是要把我摔死嗎?』舉這個笑話是要跟大家說明一件事,設計樣式是一個古老而實用 
                ,解決問題所匯集起來的一些方法,同時也可以改善系統結構性的問題,使系統更有彈性,而易於應付外在的變動,但千萬不要以為它是萬靈丹,什麼事都可以用樣式去解決,否則可能就變成了那隻摔死的鸚鵡了。 
              </p>
              </font>
              <p><font color="#000000">總之,為了順應市場需求,變動成了一個必然的趨勢,也是軟體工程中一個難以克服的問題,而一般人不是視而不見,不然就是把變動視為是一個不合理的要求,而加以凍結。這是錯誤的想法,因為把變動凍結了,系統是沒問題了,但使用者的問題仍然沒有得到解決,失去了意義,尤其是在一些 
                MIS 的部門,經常會犯了這種錯誤,強用管理手段去隱藏技術上一些無法克服的盲點。然而若是耗用大量的資源,過高的成本去克服變動,亦是不智之舉,因此如何學習並運用樣式解決問題才是明智的選擇,最後希望這篇短文,可以引發 
                你對設計樣式研究的興趣。<br>
                </font> </p>
            </div>
            </td>
        </tr>
      </table>
       <!-- #EndEditable --></td>
  </tr>
</table>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center">
<hr>
      <span class="copyright"> 版权所有:UML软件工程组织 </span></td>
  </tr>
</table>
</body>
<!-- InstanceEnd --></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -