中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 多媒體制作 > [AS3]裝飾者模式
[AS3]觀察者模式(基本版) 回到列表 [AS3]保存文本文件到本地
 [AS3]裝飾者模式

作者:kenjor01 時(shí)間: 2008-03-14 文檔類型:原創(chuàng) 來自:藍(lán)色理想

上個星期買了本Head First 的《設(shè)計(jì)模式》,開始學(xué)習(xí)了設(shè)計(jì)模式了,感覺頗多。想想我就是拿著腳本語言來編程的,弄那么深奧的干嘛呢,估計(jì)是無聊吧。推薦朋友也看,他說沒有空,是啊,現(xiàn)在的年輕人沒有一個不忙的。說是讓我整理出筆記讓他看看。

這本書是針對java 寫的。沒學(xué)過java 不過語法跟flash 的腳本語言as3 還是很相似的。

另外借助于一本 《Advanced.ActionScript.3.with.Design.Patterns》,這個也是設(shè)計(jì)模式。這兩本書的區(qū)別主要在于 行文敘事,讀head first 那書感覺很有趣無需什么基礎(chǔ),讀《Advanced.ActionScript.3.with.Design.Patterns》,感覺沒有了,為什么呢?那是英文版的,我英文不好,這也是他們的第二個區(qū)別。而我的行文則是用as3 來 實(shí)現(xiàn)《設(shè)計(jì)模式》中的所有模式,基本上談實(shí)現(xiàn),不談理解。本人非程序員出身,寫的東西不太好理解哦。呵呵。

第一個首先講的是裝飾者模式:(decorator Pattern)

下面的程序代碼背景:飲料店賣一些飲料Beverage(如咖啡,茶…),在飲料中可以增加調(diào)料(如奶,糖..),使他的味道更可口些,就是說調(diào)料是來裝飾飲料的。而這一些都要錢才能享受哦。

文件格式基本上是一個類一個文件

//第一個as文件  所有飲料包括調(diào)料的基類 有一個描述方法 和一個費(fèi)用方法
package com.dp.decorator {
public class Beverage {
  public var description : String = “unkonwn Beverage”;
  
  public function getDescription() : String {
   return description;
  }
  public function cost() : Number {
   return 0;
  }
}
}
//第二個as 文件繼承自飲料,是一種具體的飲料(濃咖啡Espresso) ,所有的調(diào)料都可以來裝飾它(理論上)。
package com.dp.decorator {
import com.dp.decorator.Beverage;
/**
  * @author tkj
  */
public class Espresso extends Beverage {
  public function Espresso() {
   description = “Espresso”;
  }
  public override function  cost() : Number {
   return 1.99;
  }
}
}
//這是第三個as文件繼承自飲料,是一種抽象的飲料的調(diào)料CondimentDecorator,所有的調(diào)料繼承自它,(我在實(shí)現(xiàn)的時(shí)候發(fā)現(xiàn)其實(shí)所有的調(diào)料可以直接繼承自飲料也可以。),它的子類們會覆蓋它的一切。
package com.dp.decorator {
import com.dp.decorator.Beverage;

/**
  * @author tkj
  */
public class CondimentDecorator extends Beverage {
  public function CondimentDecorator() {
   
  }
  public override function getDescription():String{
   return description;
  
  }
}
}
//第四個as文件,是具體的調(diào)料mocha(摩卡),它覆蓋了上面的調(diào)料類,它的構(gòu)造函數(shù)傳入的對象就是一個飲料實(shí)例。它返回的描述getDescription() 是這個調(diào)料的描述和傳入的這個實(shí)例的描述,它返回的價(jià)格cost()是這種調(diào)料的價(jià)格和傳入的實(shí)例的價(jià)格。有點(diǎn)遞歸的味道。
package com.dp.decorator {
import com.dp.decorator.Beverage;
import com.dp.decorator.CondimentDecorator;
/**
  * @author tkj
  */
public class Mocha extends CondimentDecorator {
  public  var yinliao : Beverage;
  public function Mocha(yinliao1 : Beverage) {
   this.yinliao = yinliao1;
   
  }
  public override function  getDescription() : String {
   return yinliao.getDescription() + “.Mocha”;
  }
  public override function cost() : Number {
   return yinliao.cost() + 0.20;
  }
}
}
//第五個as文件 是另一個調(diào)料的子類Soy豆沫跟上一個類似
package com.dp.decorator {
import com.dp.decorator.Beverage;
import com.dp.decorator.CondimentDecorator;
/**
  * @author tkj
  */
public class Soy extends CondimentDecorator {
  public  var yinliao : Beverage;
  public function Soy(yinliao1 : Beverage) {
   this.yinliao = yinliao1;
   
  }
  public override function  getDescription() : String {
   return yinliao.getDescription() + “.Soy “;
  }
  public override function cost() : Number {
   return yinliao.cost() + 0.3;
  }
}
}
//第六個類,就是使用上述模式了,介紹看代碼內(nèi)部的注解。
package {
import flash.display.Sprite;
import com.dp.decorator.*;
/**
  * @author tkj
  */
public class Dinggou extends Sprite {
  public function Dinggou() {
//點(diǎn)一種飲料,注意類型Beverage,這個是在上面所有類中的通行證.一開始沒有注意在這里摔了
   var yinliao1 : Beverage = new Espresso();
//加點(diǎn)摩卡
   yinliao1 = new Mocha(yinliao1);
//再加點(diǎn)摩卡
   yinliao1 = new Mocha(yinliao1);
//加點(diǎn)豆沫
   yinliao1 = new Soy(yinliao1);
//再加點(diǎn)摩卡(不會還不夠吧?要不夠還可以再加哦。
   yinliao1 = new Mocha(yinliao1);
//夠了,結(jié)帳。
   trace(yinliao1.getDescription() + “$” + yinliao1.cost());
  }
}
}

經(jīng)典論壇討論
http://bbs.blueidea.com/thread-2836210-1-1.html

本文鏈接:http://www.95time.cn/tech/multimedia/2008/5489.asp 

出處:藍(lán)色理想
責(zé)任編輯:bluehearts

◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
[AS3]觀察者模式(基本版)
下雪系統(tǒng)類SnowSystem
AS3中數(shù)據(jù)發(fā)送與接收
有關(guān)AS3編程的一些總結(jié)
ActionScript 3 日積月累之一
作者文章
[AS3]觀察者模式(基本版)
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報(bào)告錯誤,以利文檔及時(shí)修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報(bào)告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2