<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>「不要從程式語言學習「物件導向」！」的迴響</title>
	<atom:link href="http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/feed" rel="self" type="application/rss+xml" />
	<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a</link>
	<description>不用牽掛過去，不必擔心未來，踏實於現在，就與過去和未來同在！</description>
	<lastBuildDate>Fri, 10 Feb 2012 06:28:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>由：不要從程式語言學習「物件導向」！ &#171; Flash初哥</title>
		<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/comment-page-1#comment-4185</link>
		<dc:creator>不要從程式語言學習「物件導向」！ &#171; Flash初哥</dc:creator>
		<pubDate>Mon, 04 Oct 2010 15:18:39 +0000</pubDate>
		<guid isPermaLink="false">#comment-4185</guid>
		<description>[...] from: http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a [...]</description>
		<content:encoded><![CDATA[<p>[...] from: <a href="http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a" rel="nofollow">http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>由：Kenming Wang</title>
		<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/comment-page-1#comment-4010</link>
		<dc:creator>Kenming Wang</dc:creator>
		<pubDate>Fri, 11 Jun 2010 07:33:58 +0000</pubDate>
		<guid isPermaLink="false">#comment-4010</guid>
		<description>非常非常好的見解與心得分享。 :-)

我與我的 partner Ringle 提及到您這篇的分享，他很認同。

不過，這也同時讓我思考，是否還有比 &quot;抽象&quot; 更 &quot;抽象&quot; 的層次呢？

可能我這幾年的心得，所思考出來的心得是，可能 &quot;架構 (architecture)&quot; 還來得比 &quot;抽象&quot; 再更抽象一些。 ^^

基於 &quot;架構&quot; 的整體性考量下，所需具備的能力就包括了 &quot;抽象&quot; 與 &quot;聚焦&quot; 等技能。

不過，&quot;架構&quot; 這個詞彙，可能被泛濫掉了。畢竟，越 &quot;抽象&quot; 的層次，越容易被 &quot;各自表述&quot;。 :)

歡迎隨時保持交流討論喔。</description>
		<content:encoded><![CDATA[<p>非常非常好的見解與心得分享。 <img src='http://www.kenming.idv.tw/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>我與我的 partner Ringle 提及到您這篇的分享，他很認同。</p>
<p>不過，這也同時讓我思考，是否還有比 "抽象" 更 "抽象" 的層次呢？</p>
<p>可能我這幾年的心得，所思考出來的心得是，可能 "架構 (architecture)" 還來得比 "抽象" 再更抽象一些。 ^^</p>
<p>基於 "架構" 的整體性考量下，所需具備的能力就包括了 "抽象" 與 "聚焦" 等技能。</p>
<p>不過，"架構" 這個詞彙，可能被泛濫掉了。畢竟，越 "抽象" 的層次，越容易被 "各自表述"。 <img src='http://www.kenming.idv.tw/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>歡迎隨時保持交流討論喔。</p>
]]></content:encoded>
	</item>
	<item>
		<title>由：Manuel Kuok</title>
		<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/comment-page-1#comment-4006</link>
		<dc:creator>Manuel Kuok</dc:creator>
		<pubDate>Wed, 09 Jun 2010 10:14:30 +0000</pubDate>
		<guid isPermaLink="false">#comment-4006</guid>
		<description>個人的想法分享 :
從程式實作的角度 : 
物件導向技術其&lt;strong&gt;目的&lt;/strong&gt;: 就是讓program即使有變化...亦不用大修改!!! 
那麼到底如何變化...亦不用大修改呢?  
背後思想就是運用  &quot;&lt;strong&gt;抽象&lt;/strong&gt;&quot; !! 

 encapsulation, inheritance , interface ,  polymorphism , delegate 等等一切一切名詞,概念....  都是來實現 &quot;&lt;strong&gt;抽象&lt;/strong&gt;&quot;.

讓我舉一個例子,例如 polymorphism, 因為有了polymorphism ,   
(以下取自&lt;a href=&quot;http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming&lt;/a&gt; 留意粗體!)
       {
            var animals = new List() {
                new Cat(&quot;Missy&quot;),
                new Cat(&quot;Mr. Mistoffelees&quot;),
                new Dog(&quot;Lassie&quot;)
            };
 
            foreach (var animal in animals) {
                Console.WriteLine(animal.Name + &quot;: &quot; + &lt;strong&gt;animal.Talk()&lt;/strong&gt;);


而不用 到 switch 來判斷 是甚麼動物.   (不用 case cat then cat.Talk() )
正因為polymorphsim, 若遇到有新動物時,只需新增某種動物class 即可!
animal class 就是 狗class,貓class 的抽象....

interface,  delegate..等等就是行為抽象... 

一切一切都是因著&quot;抽象&quot;,來達到program即使有變化...亦不用大修改 !


謝謝! 有不同想法請告之!渴求討論!</description>
		<content:encoded><![CDATA[<p>個人的想法分享 :<br />
從程式實作的角度 :<br />
物件導向技術其<strong>目的</strong>: 就是讓program即使有變化&#8230;亦不用大修改!!!<br />
那麼到底如何變化&#8230;亦不用大修改呢?<br />
背後思想就是運用  "<strong>抽象</strong>" !! </p>
<p> encapsulation, inheritance , interface ,  polymorphism , delegate 等等一切一切名詞,概念&#8230;.  都是來實現 "<strong>抽象</strong>".</p>
<p>讓我舉一個例子,例如 polymorphism, 因為有了polymorphism ,<br />
(以下取自<a href="http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming" rel="nofollow">http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming</a> 留意粗體!)<br />
       {<br />
            var animals = new List() {<br />
                new Cat("Missy"),<br />
                new Cat("Mr. Mistoffelees"),<br />
                new Dog("Lassie")<br />
            };</p>
<p>            foreach (var animal in animals) {<br />
                Console.WriteLine(animal.Name + ": " + <strong>animal.Talk()</strong>);</p>
<p>而不用 到 switch 來判斷 是甚麼動物.   (不用 case cat then cat.Talk() )<br />
正因為polymorphsim, 若遇到有新動物時,只需新增某種動物class 即可!<br />
animal class 就是 狗class,貓class 的抽象&#8230;.</p>
<p>interface,  delegate..等等就是行為抽象&#8230; </p>
<p>一切一切都是因著"抽象",來達到program即使有變化&#8230;亦不用大修改 !</p>
<p>謝謝! 有不同想法請告之!渴求討論!</p>
]]></content:encoded>
	</item>
	<item>
		<title>由：Kenming Wang</title>
		<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/comment-page-1#comment-3950</link>
		<dc:creator>Kenming Wang</dc:creator>
		<pubDate>Tue, 04 May 2010 14:45:11 +0000</pubDate>
		<guid isPermaLink="false">#comment-3950</guid>
		<description>OOP 是表達運用所謂 &quot;物件&quot; 的設計分析思維的一種機制與工具，所以，若是不瞭解分析設計的目的(這可能很多人都沒去思考，以為只是想要快速的作出來)，那麼，有好的工具其實意義也不會太大。

所以，你可能誤解了 OOP 是思維，不是喔，我在文內應該表達的很明確：它只是工具，重點是你看待系統分析的設計角度與思考核心是甚麼(更甚者，還要能擴展至團隊成為共識)。

再則，該本趙教授出版的書，我大致有翻閱過。我是以為，趙教授所解釋的軟體架構是比較偏向軟體結構。 Architecture 與 Structure 的意涵可是大大的完全不相同也不能去對比的。

我還是再次強調，所謂物件導向的思維，並不會是純用技術面去看待它的。^^</description>
		<content:encoded><![CDATA[<p>OOP 是表達運用所謂 "物件" 的設計分析思維的一種機制與工具，所以，若是不瞭解分析設計的目的(這可能很多人都沒去思考，以為只是想要快速的作出來)，那麼，有好的工具其實意義也不會太大。</p>
<p>所以，你可能誤解了 OOP 是思維，不是喔，我在文內應該表達的很明確：它只是工具，重點是你看待系統分析的設計角度與思考核心是甚麼(更甚者，還要能擴展至團隊成為共識)。</p>
<p>再則，該本趙教授出版的書，我大致有翻閱過。我是以為，趙教授所解釋的軟體架構是比較偏向軟體結構。 Architecture 與 Structure 的意涵可是大大的完全不相同也不能去對比的。</p>
<p>我還是再次強調，所謂物件導向的思維，並不會是純用技術面去看待它的。^^</p>
]]></content:encoded>
	</item>
	<item>
		<title>由：水無月澈</title>
		<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/comment-page-1#comment-3948</link>
		<dc:creator>水無月澈</dc:creator>
		<pubDate>Tue, 04 May 2010 12:24:32 +0000</pubDate>
		<guid isPermaLink="false">#comment-3948</guid>
		<description>您好:
    看到你的文章，我感覺到某些同感，但又些微的跟我認知有差異。
    先說明一下，我是寫嵌入式 linux的軟體工程師，因此，我開發的環境，是純C語言，那是個非OOP的程式語言，思維是「結構化」，但是到了現在，我反而趨向C語言，模擬OOP的方式做開發，但這個過程，思維的轉換仍然非常辛苦。
    所以，我同意OOP是思維。
    但，在這個轉換的過程，我發現了一個問題，我知道物件導向的思維，但我無法用C語言模擬此思維，但網路上確有OOPC這個C語言模擬物件的h檔文件(支持C99規範)。
    搜尋了資工科系的相關資料，看了「軟體架構學」，作者:趙善忠，之後，我才恍然大悟。
    原來，&lt;strong&gt;並非是知道OOPC是思維就能夠使用，能夠轉換，而是，如果無法讓你聯想到OOP思維，OOP反而就沒辦法使用。&lt;/strong&gt;
   但現今的資工科系也很少教學如何聯想到OOP思維，除「軟體架構學」此書外。所以我相信，就算知道OOP的人，UML也仍看不懂，不會用，但UML本身卻是為了OOP創造的「簡單型思維語言」。 
    所以我覺得，根本問題是軟體的教學應該是
    1.軟體架構
    2.程式語言
    而非是
    1.程式語言(軟體思維、軟體架構自己想)
    跳過了軟體架構的思維當然覺得程式語言很難了，不明白OOP為什麼要使用了。</description>
		<content:encoded><![CDATA[<p>您好:<br />
    看到你的文章，我感覺到某些同感，但又些微的跟我認知有差異。<br />
    先說明一下，我是寫嵌入式 linux的軟體工程師，因此，我開發的環境，是純C語言，那是個非OOP的程式語言，思維是「結構化」，但是到了現在，我反而趨向C語言，模擬OOP的方式做開發，但這個過程，思維的轉換仍然非常辛苦。<br />
    所以，我同意OOP是思維。<br />
    但，在這個轉換的過程，我發現了一個問題，我知道物件導向的思維，但我無法用C語言模擬此思維，但網路上確有OOPC這個C語言模擬物件的h檔文件(支持C99規範)。<br />
    搜尋了資工科系的相關資料，看了「軟體架構學」，作者:趙善忠，之後，我才恍然大悟。<br />
    原來，<strong>並非是知道OOPC是思維就能夠使用，能夠轉換，而是，如果無法讓你聯想到OOP思維，OOP反而就沒辦法使用。</strong><br />
   但現今的資工科系也很少教學如何聯想到OOP思維，除「軟體架構學」此書外。所以我相信，就算知道OOP的人，UML也仍看不懂，不會用，但UML本身卻是為了OOP創造的「簡單型思維語言」。<br />
    所以我覺得，根本問題是軟體的教學應該是<br />
    1.軟體架構<br />
    2.程式語言<br />
    而非是<br />
    1.程式語言(軟體思維、軟體架構自己想)<br />
    跳過了軟體架構的思維當然覺得程式語言很難了，不明白OOP為什麼要使用了。</p>
]]></content:encoded>
	</item>
	<item>
		<title>由：Kenming Wang</title>
		<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/comment-page-1#comment-3580</link>
		<dc:creator>Kenming Wang</dc:creator>
		<pubDate>Thu, 10 Sep 2009 13:35:07 +0000</pubDate>
		<guid isPermaLink="false">#comment-3580</guid>
		<description>哇！！ 我竟然給大師虛加了 10 來歲，實在大不敬！！
感謝您細心的糾正。 !^^</description>
		<content:encoded><![CDATA[<p>哇！！ 我竟然給大師虛加了 10 來歲，實在大不敬！！<br />
感謝您細心的糾正。 !^^</p>
]]></content:encoded>
	</item>
	<item>
		<title>由：Jacky</title>
		<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/comment-page-1#comment-3571</link>
		<dc:creator>Jacky</dc:creator>
		<pubDate>Tue, 08 Sep 2009 19:08:26 +0000</pubDate>
		<guid isPermaLink="false">#comment-3571</guid>
		<description>hey,不好意思
抓個小錯誤,從 wikipedia來看
Jacobson似乎才剛滿70歲耶...
http://en.wikipedia.org/wiki/Ivar_Jacobson
您的文章指出「他已經八十餘歲」
還是說我們指的是不同人嗎??</description>
		<content:encoded><![CDATA[<p>hey,不好意思<br />
抓個小錯誤,從 wikipedia來看<br />
Jacobson似乎才剛滿70歲耶&#8230;<br />
<a href="http://en.wikipedia.org/wiki/Ivar_Jacobson" rel="nofollow">http://en.wikipedia.org/wiki/Ivar_Jacobson</a><br />
您的文章指出「他已經八十餘歲」<br />
還是說我們指的是不同人嗎??</p>
]]></content:encoded>
	</item>
	<item>
		<title>由：Kenming Wang</title>
		<link>http://www.kenming.idv.tw/ac_eb_af_cu_af_eo_eu_ascci_a_c_carpad_a/comment-page-1#comment-1315</link>
		<dc:creator>Kenming Wang</dc:creator>
		<pubDate>Tue, 25 Mar 2008 19:46:34 +0000</pubDate>
		<guid isPermaLink="false">#comment-1315</guid>
		<description>Hi James:&lt;br /&gt;
對耶，我不是所謂軟工科系，是電子科喔。 ^^&lt;br /&gt;
倒是有個疑問，國內大專研究所有在教授所謂的 OOAD 嗎？&lt;br /&gt;
&lt;br /&gt;
有些意見倒是與你不太一樣，重點不是 OOP, 也不是 OOAD，我會以為重點在於對軟體設計本質的探索與體悟。 :-)</description>
		<content:encoded><![CDATA[<p>Hi James:<br />
對耶，我不是所謂軟工科系，是電子科喔。 ^^<br />
倒是有個疑問，國內大專研究所有在教授所謂的 OOAD 嗎？</p>
<p>有些意見倒是與你不太一樣，重點不是 OOP, 也不是 OOAD，我會以為重點在於對軟體設計本質的探索與體悟。 <img src='http://www.kenming.idv.tw/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

