最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flash AS教程:decorator Pattern

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-06 01:25:10   作者:佚名   我要評論
上個星期買了本Head First 的《設(shè)計模式》,開始學(xué)習(xí)了設(shè)計模式了,感覺頗多。想想我就是拿著腳本語言來編程的,弄那么深奧的干嘛呢,估計是無聊吧。推薦朋友也看,他說沒有空,是啊,現(xiàn)在的年輕人沒有一個不忙的。說是讓我整理出筆記讓他看看。 這本書是針對java 寫的。
上個星期買了本Head First 的《設(shè)計模式》,開始學(xué)習(xí)了設(shè)計模式了,感覺頗多。想想我就是拿著腳本語言來編程的,弄那么深奧的干嘛呢,估計是無聊吧。推薦朋友也看,他說沒有空,是啊,現(xiàn)在的年輕人沒有一個不忙的。說是讓我整理出筆記讓他看看。
這本書是針對java 寫的。沒學(xué)過java 不過語法跟flash 的腳本語言as3 還是很相似的。
另外借助于一本 《Advanced.ActionScript.3.with.Design.Patterns》,這個也是設(shè)計模式。這兩本書的區(qū)別主要在于 行文敘事,讀head first 那書感覺很有趣無需什么基礎(chǔ),讀《Advanced.ActionScript.3.with.Design.Patterns》,感覺沒有了,為什么呢?那是英文版的,我英文不好,這也是他們的第二個區(qū)別。而我的行文則是用as3 來 實現(xiàn)《設(shè)計模式》中的所有模式,基本上談實現(xiàn),不談理解。本人非程序員出身,寫的東西不太好理解哦。呵呵。
第一個首先講的是裝飾者模式:(decorator Pattern)
下面的程序代碼背景:飲料店賣一些飲料Beverage(如咖啡,茶…),在飲料中可以增加調(diào)料(如奶,糖..),使他的味道更可口些,就是說調(diào)料是來裝飾飲料的。而這一些都要錢才能享受哦。
文件格式基本上是一個類一個文件
//第一個as文件所有飲料包括調(diào)料的基類 有一個描述方法 和一個費用方法
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 functioncost() : Number {
return 1.99;
}
}
}
//這是第三個as文件繼承自飲料,是一種抽象的飲料的調(diào)料CondimentDecorator,所有的調(diào)料繼承自它,(我在實現(xiàn)的時候發(fā)現(xiàn)其實所有的調(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ù)傳入的對象就是一個飲料實例。它返回的描述getDescription() 是這個調(diào)料的描述和傳入的這個實例的描述,它返回的價格cost()是這種調(diào)料的價格和傳入的實例的價格。有點遞歸的味道。
package com.dp.decorator {
import com.dp.decorator.Beverage;
import com.dp.decorator.CondimentDecorator;
/**
* @author tkj
*/
public class Mocha extends CondimentDecorator {
publicvar yinliao : Beverage;
public function Mocha(yinliao1 : Beverage) {
this.yinliao = yinliao1;

}
public override functiongetDescription() : 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 {
publicvar yinliao : Beverage;
public function Soy(yinliao1 : Beverage) {
this.yinliao = yinliao1;

}
public override functiongetDescription() : 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() {
//點一種飲料,注意類型Beverage,這個是在上面所有類中的通行證.一開始沒有注意在這里摔了
var yinliao1 : Beverage = new Espresso();
//加點摩卡
yinliao1 = new Mocha(yinliao1);
//再加點摩卡
yinliao1 = new Mocha(yinliao1);
//加點豆沫
yinliao1 = new Soy(yinliao1);
//再加點摩卡(不會還不夠吧?要不夠還可以再加哦?。?br /> yinliao1 = new Mocha(yinliao1);
//夠了,結(jié)帳。
trace(yinliao1.getDescription() “$” yinliao1.cost());
}
}
}

相關(guān)文章

  • flash cs6鼠標(biāo)跟隨效果實現(xiàn)代碼分享

    flash cs6想要實現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下
    2019-05-19
  • Flash cs6怎么使用代碼輸入中英文文本?

    Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細(xì)的教程,需要的朋友
    2018-03-11
  • flash as3.0怎么定義抽象類和抽象?

    flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://m.fzitv.net/softs/408402.
    2018-02-28
  • flash cs6中怎么使用ActionScript3.0?

    flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下
    2018-01-25
  • Flash中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?

    本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標(biāo)點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)
    2018-01-12
  • Flash中如何用代碼將圖片放在自己想要的舞臺位置?

    本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細(xì),感興趣的朋友歡迎前來分享學(xué)習(xí)
    2017-11-20
  • 在Flash CS6中使用with函數(shù)繪制背景圖教程

    本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)
    2017-11-18
  • Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程

    Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下
    2017-10-11
  • Flash怎么制作來回?fù)u擺的花朵的動畫?

    Flash怎么制作來回?fù)u擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細(xì)的教程,很簡單,需要的朋友可以參考下
    2017-05-23
  • Flash怎么制作流動七彩色的文字?

    Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下
    2017-04-23

最新評論

剑川县| 仁怀市| 襄汾县| 临潭县| 许昌市| 泾阳县| 腾冲县| 巩义市| 白河县| 云梦县| 望谟县| 弋阳县| 洪江市| 长泰县| 大关县| 绥芬河市| 北辰区| 武义县| 九台市| 抚州市| 惠水县| 普定县| 和顺县| 石河子市| 乐山市| 万州区| 秀山| 普宁市| 山阳县| 栖霞市| 宾阳县| 绵阳市| 新余市| 马尔康县| 乳源| 关岭| 偏关县| 西贡区| 宁安市| 陆丰市| 浦北县|