<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
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/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>mr.mu &#187; Design Patterns</title> <atom:link href="http://www.mrmu.com.tw/category/otherprogramming/design-patterns/feed/" rel="self" type="application/rss+xml" /><link>http://www.mrmu.com.tw</link> <description>WordPress 網站架設、軟體設計、互動介面研究</description> <lastBuildDate>Wed, 08 Feb 2012 08:24:17 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.1.2</generator> <item><title>Design Pattern: Factory Pattern (下)</title><link>http://www.mrmu.com.tw/2007/12/11/design-pattern-factory-pattern-%e4%b8%8b/</link> <comments>http://www.mrmu.com.tw/2007/12/11/design-pattern-factory-pattern-%e4%b8%8b/#comments</comments> <pubDate>Tue, 11 Dec 2007 00:11:00 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[Factory]]></category> <category><![CDATA[設計範式]]></category> <category><![CDATA[軟體技巧]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/2007/12/11/design-pattern-factory-pattern-%e4%b8%8b/</guid> <description><![CDATA[上回介紹到腳踏車行終於得到了工廠(Factory)來處理製造方面的部份，那麼究竟還有什麼樣的問題呢？ 目前只有一個工廠，當產品種類愈來愈多時，簡易工廠的方式一樣是難以管理的；或許可以建立多個工廠來分類處理不同的產品，聽來是個不錯的主意。首先就讓工廠成為抽象/虛擬類別(abtract/virtual class)，定義出它通用的成員以供繼承。在此，腳踏車行的功能較少，我們可以將工廠的功能與之結合。 // 當出現更多種類的Factory，且各個Factory都想發展獨特的製造方式 // 建立一個BicycleStore的抽象類別 public abstract class BicycleStore { public Bicycle orderBicycle(String type) { Bicycle oneBicycle; oneBicycle = createBicycle(type); oneBicycle.test(); oneBicycle.pack(); return oneBicycle; } abstract createBicycle(String type); //Factory method } // 一家BicycleStore的instance (新的Factory) public class GiantBicycleStore extends BicycleStore { Bicycle createBicycle(String item) //Factory method (unique!) { if (item.equals("mountain")) { return new MountainBicycle(); [...]]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2007/12/11/design-pattern-factory-pattern-%e4%b8%8b/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>DesignPattern: Factory Pattern (上)</title><link>http://www.mrmu.com.tw/2007/12/10/designpattern-factory-pattern-%e4%b8%8a/</link> <comments>http://www.mrmu.com.tw/2007/12/10/designpattern-factory-pattern-%e4%b8%8a/#comments</comments> <pubDate>Mon, 10 Dec 2007 14:10:00 +0000</pubDate> <dc:creator>mrmu</dc:creator> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[Factory]]></category> <category><![CDATA[設計範式]]></category> <category><![CDATA[軟體技巧]]></category><guid
isPermaLink="false">http://www.mrmu.com.tw/2007/12/10/designpattern-factory-pattern-%e4%b8%8a/</guid> <description><![CDATA[最近有機會參與到Framework的設計與發展，於是開始trace一些open source的project，而SmartWin++即是首先觀察的對象。 一開始鑽進去看source code，發現它是template的重度使用者，很多高級用法尚未理解，索性先畫UML，看看它的長相。局部畫出它在元件(widget)方面的設計後，才發現，耶~「WidgetFactory」，這不是有名的Pattern嗎？又能有機會研究Design Pattern了。 昨天騎車上班時被撞，跑了兩家腳踏車行，所以就拿腳踏車來作為例子說明吧。(可惜服務態度都不好，騎腳踏車的人已經不多了，請好好珍惜顧客吧!) 開始製造腳踏車吧，一開始大概是這樣的: Bicycle orderBicycle() { //製造 Bicycle oneBicycle = new Bicycle(); oneBicycle.test(); oneBicycle.pack(); return oneBicycle; } Order一台腳踏車，然後就被製造出來了。不過腳踏車可是有很多種類的，這種製造方法似乎還不夠。那麼這樣呢： Bicycle orderBicycle(String type) { Bicycle oneBicycle; if (type.equals("mountain")) { oneBicycle = new MountainBicycle(); } else if (type.equals("lady")) { oneBicycle = new LadyBicycle(); } else if (type.equals("child")) { oneBicycle = new ChildBicycle(); } oneBicycle.test(); [...]]]></description> <wfw:commentRss>http://www.mrmu.com.tw/2007/12/10/designpattern-factory-pattern-%e4%b8%8a/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)
Database Caching 1/19 queries in 0.078 seconds using disk
Object Caching 330/357 objects using disk

Served from: www.mrmu.com.tw @ 2012-02-12 08:14:29 -->
