欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

談從魔獸看PHP設(shè)計(jì)模式(2)_PHP教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:解析用SSH與PHP相連接 確保數(shù)據(jù)傳輸?shù)陌踩?/a>
SSH可以通過(guò)將聯(lián)機(jī)的封包加密的技術(shù)進(jìn)行資料的傳遞; 使用SSH可以把傳輸?shù)乃袛?shù)據(jù)進(jìn)行加密,即使有人截獲到數(shù)據(jù)也無(wú)法得到有用的信息。同時(shí)數(shù)據(jù)經(jīng)過(guò)壓縮,大大地加快了傳輸?shù)乃俣取?傊ㄟ^(guò)SSH的使用,可以確保資料傳輸比較安全并且傳輸效率較高。 不過(guò),

 

好了,到這里初始化代碼就寫(xiě)好了,現(xiàn)在還差一個(gè)控制這些初始化得類,也就是封裝他們:

<?php
class initialController {
//構(gòu)造函數(shù),參數(shù)為玩家的數(shù)組
public function __construct($playerArray)
{

foreach ($playerArray as $player)

{

switch ($player->race)

{

case 'NighyElf':

$initialController = new NighyElfInitial();break;

case 'ORC':

$initialController = new ORCInitial();break;

}

$initialController->giveArmy($player);

$initialController->giveBuilding($player);

$initialController->giveSupply($player);

}

}
}

最后就是簡(jiǎn)單這么一調(diào)用,就OK:

<?php
//有兩個(gè)精靈族兩個(gè)獸族
$playerArray = array(new player('NighyElf'), new player('NighyElf'), new player('ORC'), new player('ORC'));
//進(jìn)行初始化工作
$initialController = new initialController($playerArray);

這就是策略模式,他將不同情況下的算法封裝在一起。Zend framework中的Zend_Application_Resource就是用策略模式來(lái)設(shè)計(jì)的。

三、工廠模式:

問(wèn)題的提出:

最初在設(shè)計(jì)模式一書(shū)中,許多設(shè)計(jì)模式都鼓勵(lì)使用松散耦合。要理解這個(gè)概念,讓我們最好談一下許多開(kāi)發(fā)人員從事大型系統(tǒng)的艱苦歷程。在更改一個(gè)代碼片段時(shí),就會(huì)發(fā)生問(wèn)題,系統(tǒng)其他部分 —— 您曾認(rèn)為完全不相關(guān)的部分中也有可能出現(xiàn)級(jí)聯(lián)破壞。

該問(wèn)題在于緊密耦合。系統(tǒng)某個(gè)部分中的函數(shù)和類嚴(yán)重依賴于系統(tǒng)的其他部分中函數(shù)和類的行為和結(jié)構(gòu)。您需要一組模式,使這些類能夠相互通信,但不希望將它們緊密綁定在一起,以避免出現(xiàn)聯(lián)鎖。

在大型系統(tǒng)中,許多代碼依賴于少數(shù)幾個(gè)關(guān)鍵類。需要更改這些類時(shí),可能會(huì)出現(xiàn)困難。例如,假設(shè)您有一個(gè)從文件讀取的 User 類。您希望將其更改為從數(shù)據(jù)庫(kù)讀取的其他類,但是,所有的代碼都引用從文件讀取的原始類。這時(shí)候,使用工廠模式會(huì)很方便。

工廠模式是一種類,它具有為您創(chuàng)建對(duì)象的某些方法。您可以使用工廠類創(chuàng)建對(duì)象,而不直接使用 new。這樣,如果您想要更改所創(chuàng)建的對(duì)象類型,只需更改該工廠即可。使用該工廠的所有代碼會(huì)自動(dòng)更改。

問(wèn)題的解決:

呵呵,估計(jì)有些phper沒(méi)看懂吧,沒(méi)關(guān)系,那是我從其他地方抄的,我們下面還是通過(guò)魔獸來(lái)進(jìn)行吧。這一部分,我看都已經(jīng)有前人寫(xiě)好了,我就基本上照抄了,請(qǐng)前人不要見(jiàn)怪啊。呵呵。

前面選了暗夜精靈族(Nighy Elf),和獸族(ORC),因?yàn)樾【`(Wisp)能建造建筑,還能自爆。所以根據(jù)這個(gè)我們下面先寫(xiě)個(gè)小精靈(Wisp)的類。

<?php
class Wisp
{

private $mHealthPoint = 120;//這是小精靈的血量

private $mArmor = 0;//這是小精靈的護(hù)甲

//小精靈能建造建筑

public function Build()

{

echo '精靈建造建筑咯。<br/>';

}

//每個(gè)小精靈被造出來(lái)時(shí)還會(huì)占用一個(gè)人口

public function __construct()

{

echo '你已經(jīng)建造了一個(gè)小精靈。<br/>';

//這里是增加已有人口的代碼

}

//每個(gè)小精靈死亡會(huì)減少你占用的人口

public function __destruct()

{

//這里是減少已有人口的代碼

}
}

把這些代碼放在Arms/ Wisp.php中。
啊,還有還有,還有苦工(Peon)的類

<?php
class Peon
{

private $mHealthPoint = 250;//這是苦工的血量

private $mArmor = 0;//這是苦工的護(hù)甲

 

//苦工能建造建筑

public function Build()

{

echo '苦工建造建筑咯。<br/>';

}

 

//每個(gè)苦工被造出來(lái)時(shí)還會(huì)占用一個(gè)人口

public function __construct()

{

echo '你已經(jīng)建造了一個(gè)苦工。<br/>';

//這里是增加已有人口的代碼

}

//每個(gè)苦工死亡會(huì)減少你占用的人口

public function __destruct()

{

//這里是減少已有人口的代碼

}
}
把這些代碼放在Arms/ Peon.php中。

等等,這樣豈不是很復(fù)雜,魔獸里面還有那么多的兵種,另外都還有兩個(gè)種族,每次創(chuàng)建一個(gè)兵就要new一個(gè),要是記不住這個(gè)兵的類名,豈不是new不了?而且如果一個(gè)兵是一個(gè)類,放在一個(gè)文件里,那是不是一開(kāi)始就要把所有的幾十上百個(gè)文件都include一次啊,那效率可想而知啊。

嘿嘿,當(dāng)然是有解決辦法的啊,我們?cè)賹?xiě)一個(gè)類把這些類都封裝起來(lái),這個(gè)把兵種都封裝起來(lái)的類我們稱之為工廠類,他可以像生產(chǎn)產(chǎn)品一樣,來(lái)創(chuàng)建兵,幫我們對(duì)其實(shí)例化。下面我們就來(lái)看這個(gè)類怎么實(shí)現(xiàn)吧。

<?php
class CreatArms
{

public function __construct(){}

public function Creat($arms,$path = '')

{

include $path.$arms.'.php'; //包含要這個(gè)類的文件

return new $arms; //返回你創(chuàng)建的兵種對(duì)象的句柄

}
}

這樣,即使在兵種多樣的情況下,我們?nèi)匀豢梢院芊奖愕貙?shí)例化:

$creator = new CreatArms();
$w1 = $creator->Creat('兵種名','前綴或路徑');
例如創(chuàng)建小精靈:
$creator = new CreatArms();//不管創(chuàng)建啥,我都只要使用這個(gè)類
$w1 = $creator->Creat(‘Wisp’,’./Arms/’);//創(chuàng)建一個(gè)小精靈
$w1->Build();//讓小精靈造建筑

這就是傳說(shuō)中的工廠模式,通過(guò)工廠模式,對(duì)于如論壇那種有很多種用戶的,特別是為了以后擴(kuò)展比較方便的,采用工廠模式,是個(gè)很好的解決方法。在zend framework中的Zend_Form、Zend_Filter、Zend_Validate就是用工廠模式來(lái)構(gòu)架的。

四、觀察者模式:

問(wèn)題的提出:

觀察者模式為您提供了避免組件之間緊密耦合的另一種方法。該模式非常簡(jiǎn)單:一個(gè)對(duì)象通過(guò)添加一個(gè)方法(該方法允許另一個(gè)對(duì)象,即觀察者 注冊(cè)自己)使本身變得可觀察。當(dāng)可觀察的對(duì)象更改時(shí),它會(huì)將消息發(fā)送到已注冊(cè)的觀察者。這些觀察者使用該信息執(zhí)行的操作與可觀察的對(duì)象無(wú)關(guān)。結(jié)果是對(duì)象可以相互對(duì)話,而不必了解原因。

問(wèn)題的解決:

呵呵,上面還是抄的,看不懂沒(méi)關(guān)系,我們今天重點(diǎn)是玩魔獸。

已經(jīng)造了很長(zhǎng)時(shí)間的兵了,現(xiàn)在可以出去帶兵打仗了,如果我去打電腦的獸族,那么電腦與那個(gè)獸族同盟的精靈族就會(huì)過(guò)來(lái)幫忙。那么如何讓他知道自己的同盟受攻擊了呢。現(xiàn)在我們就來(lái)討論這個(gè)問(wèn)題。
首先我們寫(xiě)一下結(jié)盟的抽象類:

<?php
abstract class abstractAlly
{

//放置觀察者的集合,這里以簡(jiǎn)單的數(shù)組來(lái)直觀演示

protected $oberserverCollection;

//增加觀察者的方法,參數(shù)為觀察者(也是玩家)

public function addOberserver($oberserver)

{

$this->oberserverCollection[] = new oberserver($oberserver);

}

//將被攻擊的電腦的名字通知各個(gè)觀察者

public function notify($beAttackedPlayerName)

{

//把觀察者的集合循環(huán)

foreach ($this->oberserverCollection as $oberserver)

{

//調(diào)用各個(gè)觀察者的救援函數(shù),參數(shù)為被攻擊的電腦的名字,if用來(lái)排除被攻擊的電腦的觀察者

if($oberserver->name != $beAttackedPlayerName)

$oberserver->help($beAttackedPlayerName);

}

}

 

abstract public function beAttacked($beAttackedPlayer);
}

下面我們就寫(xiě)具體的結(jié)盟類:

<?php
class Ally extends abstractAlly
{

//構(gòu)造函數(shù),將所有電腦玩家的名稱的數(shù)組作為參數(shù)

public function __construct($allPlayer)

{

//把所有電腦玩家的數(shù)組循環(huán)

foreach ($allPlayer as $player)

{

//增加觀察者,參數(shù)為各個(gè)電腦玩家的名稱

$this->addOberserver($player);

}

}

//將被攻擊的電腦的名字通知各個(gè)觀察者

public function beAttacked($beAttackedPlayerName)

{

//調(diào)用各個(gè)觀察者的救援函數(shù),參數(shù)為被攻擊的電腦的名字,if用來(lái)排除被攻擊的電腦的觀察者

$this->notify($beAttackedPlayerName);

}
}

接著在二、策略模式中我們定義的player類中加入一個(gè)help方法
public help($beAttackedPlayerName)
{

//這里簡(jiǎn)單的輸出,誰(shuí)去救誰(shuí),最后加一個(gè)換行,便于顯示

echo $this->name." help ".$beAttackedPlayerName."<br />";
}

這樣就行了。最后就是仿真了。

<?php
//先設(shè)置敵方電腦
$allComputePlayer = array('NighyElf2', 'ORC2');
//新建電腦結(jié)盟
$Ally = new Ally($allComputePlayer);
//假設(shè)我進(jìn)攻了電腦的獸族
$Ally->beAttacked('ORC2');

這樣結(jié)盟的另一家就能接到通知,去救援。觀察者模式主要就是用在這種情況下。可以將某個(gè)狀態(tài)變化立即通知到相關(guān)的對(duì)象,相關(guān)的對(duì)象就可以采用相應(yīng)的策略。例如,zend framework中的Zend_Message就是用的觀察者模式。

 

分享:解析Windows XP系統(tǒng)下安裝apache+php+mysql
Apache和mysql的安裝較簡(jiǎn)單,主要是安裝前請(qǐng)保證80端口未被占用 比如 iis 以前安裝過(guò)的apache mysql 先停止運(yùn)行phpmyadmin,主要是配置文件的問(wèn)題,把phpMyAdmin安裝目錄下Libraries目錄下面的Config.default.php復(fù)制到PHPmyAdmin根目錄下,改 名為Config.in

共2頁(yè)上一頁(yè)12下一頁(yè)
來(lái)源:模板無(wú)憂//所屬分類:PHP教程/更新時(shí)間:2009-10-02
相關(guān)PHP教程
欧美丝袜激情| 亚洲一区在线观| 日本欧美三级| 久久精品亚洲乱码伦伦中文| 国产亚洲精品美女久久久| 亚洲va久久久噜噜噜久久狠狠| 天堂av免费在线| eeuss国产一区二区三区四区| 91在线观看高清| 深夜福利一区二区| 97中文字幕在线| 成年人av网站| 欧美精品一区二区三区久久久竹菊| 亚洲已满18点击进入久久| 亚洲91精品在线| 自拍偷拍一区二区三区四区| 亚洲精品久久久久久久久久久久久久| 久久av在线| 在线不卡中文字幕播放| 精品国产aⅴ麻豆| 婷婷丁香综合网| 欧美激情网址| 亚洲免费资源在线播放| 情事1991在线| 性xxxxxxxxx| 成人自拍视频网| www.日韩精品| 超在线视频97| 高清一区二区视频| 熟妇高潮一区二区高潮| 国产一区二区三区四区五区入口| 亚洲欧美激情在线视频| 精品久久久无码人妻字幂| 成人免费毛片视频| 一区二区91| 日韩色视频在线观看| 亚洲精品一区二区三区四区五区| 国产精品第56页| 欧美日本一区二区高清播放视频| 欧美午夜精品一区二区蜜桃| 国产一区再线| 国产一级aa大片毛片| 97久久视频| 日本精品免费观看高清观看| 国产精品加勒比| 农村黄色一级片| 亚洲一区二区三区无吗| 欧美老人xxxx18| 亚洲一区尤物| 五月婷婷丁香在线| 日韩电影在线免费看| 日韩av中文字幕在线| 800av在线免费观看| 国产免费一区二区三区最新不卡| 麻豆精品国产91久久久久久| 亚洲一区第一页| 黄www在线观看| 亚洲日本天堂| 26uuu亚洲婷婷狠狠天堂| 98精品国产自产在线观看| 国产乱国产乱老熟300部视频| 国产高清视频一区二区| 亚洲天堂免费在线观看视频| 成人免费观看a| 国产精品精品软件男同| 中文无码久久精品| 日韩精品一区二区三区中文精品 | av大片免费观看| 亚洲人成在线影院| 日韩电影在线观看中文字幕| 黄色网页免费在线观看| 超级碰碰久久| 国产人成一区二区三区影院| 国产精品入口尤物| 日韩va亚洲va欧美va清高| 午夜性色一区二区三区免费视频| 日韩欧美二区三区| 国产手机免费视频| 国产精品专区免费| 欧美激情一区二区三区蜜桃视频| 国产精品亚洲综合天堂夜夜| 久久精品一区二区三区四区五区 | 国产女人水真多18毛片18精品| 久久激情免费视频| 国产精品资源| 中文字幕久久精品| 国产老头和老头xxxx×| 欧美变态挠脚心| 色狠狠一区二区| 中文字幕成人一区| 亚洲国产综合网| 久久精品视频网| 国产在线观看不卡| 日本三级中文字幕| 蜜臀久久99精品久久久久宅男| 不卡av电影在线观看| av鲁丝一区鲁丝二区鲁丝三区| 蜜乳av综合| 欧美一区二区三区性视频| 99热亚洲精品| 国产精品蜜月aⅴ在线| 亚洲一区二区三区小说| 欧美成人一区二区在线| 91激情在线观看| 99久久久国产精品| 国产欧美日韩中文字幕在线| 久久精品这里只有精品| 爽好多水快深点欧美视频| 久久伊人精品一区二区三区| 无码一区二区精品| 91精品久久久久久久蜜月| 亚洲激情自拍图| 嫩草影院国产精品| 波多野结衣在线一区二区| 欧美婷婷六月丁香综合色| 一卡二卡三卡视频| 欧美一级网址| 欧美丝袜一区二区| 亚洲色婷婷久久精品av蜜桃| 欧美日韩成人影院| 午夜精品久久久久久久99水蜜桃| 一本一道久久a久久精品综合| 亚洲乱色熟女一区二区三区| 中文字幕av在线一区二区三区| 国产精品三区www17con| 亚洲系列第一页| 久久精品夜色噜噜亚洲aⅴ| 鬼打鬼之黄金道士1992林正英| 中文字幕码精品视频网站| 91首页免费视频| www.成人av| 国产精品毛片久久久久久久av| 久久无码av三级| 国产专区一区二区| www.热久久| 亚洲少妇最新在线视频| 日韩精品最新在线观看| 色噜噜在线播放| 亚洲午夜精品17c| 欧美日韩一区二区三区电影| 久久亚洲资源中文字| 色偷偷成人一区二区三区91| 91成人在线观看喷潮教学| 欧美精品影院| 欧美一区二区三区爱爱| 中文字幕1234区| 久久久久国产精品| 久久精品99国产精品酒店日本 | 中文字幕一区不卡| 亚洲精品乱码久久久久久蜜桃91| a一区二区三区| 欧美性猛交xxxx偷拍洗澡| 久久国产精品视频在线观看| 第四色在线一区二区| 日韩女优电影在线观看| 99热这里只有精品2| 亚洲人metart人体| 欧美成人在线免费| www.99re7| 成人一道本在线| 精品在线观看一区二区| 天天色天天操天天射| 日韩欧美国产一区二区| 农村妇女精品一二区| 国产一区二区电影在线观看| 一区二区成人av| 精品人体无码一区二区三区| 精品亚洲成a人在线观看 | 亚洲精华一区二区三区| 亚洲男女自偷自拍图片另类| 日韩中文字幕有码| 久久精品国产精品青草| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品九九九九| 亚洲午夜一区二区三区| 欧美亚洲国产成人| 久久国产中文字幕| 成年无码av片在线| 日本中文字幕在线免费观看| 久久色中文字幕| 一区二区三区欧美成人| 日韩影片在线观看| 亚洲精品xxx| av电影网站在线观看| 国模大尺度一区二区三区| 成人免费视频网站入口| 日本美女一级视频| 欧美性视频一区二区三区| 手机免费av片| 一本久道综合久久精品| 国产精品对白刺激| 丰满熟女一区二区三区| 91黄视频在线| 成人免费播放视频| 久久综合中文| **亚洲第一综合导航网站| 污视频在线免费| 欧美另类久久久品| 国产成人无码一区二区在线观看 | 福利91精品一区二区三区| 久久精品女人的天堂av| 日韩精品第二页| 日韩av综合网| 亚洲 欧美 变态 另类 综合| 91免费看视频| 肉大捧一出免费观看网站在线播放 | 欧美精品videofree1080p| 亚洲自拍一区在线观看| 亚洲精品免费播放| 粗暴91大变态调教| 亚洲福利电影| 国产精品亚洲欧美导航| 午夜激情小视频| 欧美一区日韩一区| 久久午夜精品视频| 久久久精品tv| 精品丰满人妻无套内射| 99久久99久久精品国产片桃花| 88国产精品欧美一区二区三区| 亚洲在线免费观看视频| 色综合天天性综合| 人妻激情偷乱频一区二区三区| 久久黄色级2电影| 欧美一进一出视频| 欧美影院天天5g天天爽| 欧美激情xxxx性bbbb| 亚洲综合精品在线| 欧美午夜精品一区二区蜜桃| 国产中文字幕一区二区| 豆国产96在线|亚洲| 在线视频一区观看| 99久久99久久精品国产片桃花| 日韩av免费网站| 天堂网2014av| 亚洲福利在线观看| 免费一级全黄少妇性色生活片| 日韩一区欧美一区| 欧美三级午夜理伦三级富婆| 视频一区二区不卡| 欧美一区视久久| 国产a久久精品一区二区三区 | 国产综合av在线| 亚洲九九精品| 国产精品裸体一区二区三区| 免费一级欧美片在线观看网站| 日韩视频在线免费观看| 中文字幕人成人乱码亚洲电影| 日本韩国欧美一区二区三区| 五月婷婷综合在线观看| 91视视频在线观看入口直接观看www| www.在线观看av| 亚洲精品人人| 精品一区国产| 亚洲人成网www| 欧美自拍视频在线| 日本在线视频播放| 91精品少妇一区二区三区蜜桃臀| 国产综合久久久久久鬼色 | 国产aⅴ综合色| 欧洲精品视频在线| 亚洲午夜黄色| 国产区二精品视| 国产不卡av一区二区| 国产成人一区三区| 日本午夜精品久久久久| 久久影院中文字幕| 超碰在线观看99| 亚洲成人精品久久久| 日本午夜视频在线观看| 色天天综合色天天久久| 欧日韩不卡视频| 一区二区三区在线视频免费| 国内精品免费视频| 久久日韩精品一区二区五区| 美女黄色片视频| 国产乱理伦片在线观看夜一区| 欧美极品少妇无套实战| 欧美在线综合| 亚洲欧美久久234| 午夜视频精品| 欧美日本韩国一区二区三区| 欧美伦理影院| 99免费在线视频观看| 欧美亚洲大陆| 国产日韩欧美中文| 91精品国产自产在线丝袜啪| 欧美一级淫片丝袜脚交| 精品九九久久| 久久久久久久久国产精品| 欧美日韩亚洲国产| 欧美理论电影在线播放| 综合毛片免费视频| 久久久国产影院| 无码精品人妻一区二区三区影院| 一个色综合导航| 秋霞视频一区二区| 中文字幕一区二区三区电影| 成人毛片在线免费观看| 在线视频免费一区二区| 亚洲精品一区二区三区四区| 国产一区二区三区18| 精品久久久免费视频| 亚洲欧美制服丝袜| 丰满人妻妇伦又伦精品国产| 中文在线不卡视频| 色噜噜在线播放| 久久影院中文字幕| 视频二区不卡| 久久久久久久久电影| 四虎精品永久免费| 2019亚洲男人天堂| 亚洲精品在线a| 国产精品欧美一区二区三区奶水| 成人涩涩网站| 91久久国产婷婷一区二区| 色综合综合网| 国产视频一区二区不卡| 自拍视频亚洲| 亚欧精品在线| 久久看片网站| 少妇无码av无码专区在线观看| 国内精品视频一区二区三区八戒 | 九九九久久久精品| 国产一级不卡毛片| 99久久精品国产精品久久| japan高清日本乱xxxxx| **性色生活片久久毛片| 亚洲精品视频网址| 色哟哟国产精品| 国产区一区二区三| 亚洲黄在线观看| 亚洲第一视频在线| 欧美激情日韩图片| avtt久久| 成人免费视频在线观看超级碰| 国内精品久久久久久99蜜桃| 欧美18视频| 久久精品30| 成人在线观看a| 久久久久久久久久久电影| 中国黄色a级片| 欧美日韩中文字幕| av黄色在线看| 亚洲男人天堂网| 色8久久影院午夜场| 国产激情999| jizzjizz欧美69巨大| 视频一区视频二区视频三区视频四区国产| 国产九九精品| 成年人视频在线免费| 国产日韩影视精品| 色婷婷国产精品免| 欧美精品视频www在线观看| 96日本xxxxxⅹxxx17| 久久国产精品久久久久| 亚洲精品一区二区三区在线| 成人欧美一区二区三区黑人免费| 影音先锋亚洲一区| 国产精品999视频| 91麻豆产精品久久久久久 | 久一区二区三区| 亚洲国产天堂网精品网站| 天堂在线观看视频| 日本精品久久久久影院| blacked蜜桃精品一区| 在线看成人av电影| 福利一区在线观看| 在线免费观看污视频| 91黄视频在线| 国产免费久久久| 97精品久久久| 国产精选一区| 免费在线观看污污视频| 成人福利在线看| 丰满少妇一区二区| 欧美日本在线观看| www.成人免费视频| 欧美一区二区.| 色婷婷热久久| 91午夜在线观看| 久久影院午夜片一区| 日本成人免费在线观看| 欧美成人精品3d动漫h| 黑人巨大精品| 91网站免费观看| 香蕉久久久久久久av网站| 欧美在线aaa| 亚洲成av人片www| 国产99久久久久久免费看| 久精品免费视频| 精品国产乱码久久久| 黄黄视频在线观看| 国产亚洲一区二区三区在线观看| chinese全程对白| 日韩福利在线播放| 久久久久久爱| 青青草原成人| 成人毛片视频在线观看| 国产又黄又粗视频| 亚洲国产小视频在线观看|