區域性神經(Composite) (轉)
某些情況.你也許希望當你改變某一個個體.而使得整個的其他與之關聯的個體也能感應到
並作出正確的判斷.這種情況很常見.如同.當你對你的主系統升級的時候.你的整體也
得到相應的提高.(現實中不一定.我只是打個比方).那麼很明顯,你的其它部件也感應到了主系
統的效能的改變.也就是說.主系統傳遞給沒個與之關聯的子系統.我現在升級了.你們會得到更
多的輔助效能的提升.這樣就達成了區域性範圍的成功就帶動了整體的優越性.那麼如何才能達到
這一目的呢?顯然必須提出一種心的解決方案.Composite組合的意思.也就是說把個體組合到整
體,並統一控制.下面的問題是如何聯絡個體之間.最容易理解的方案是數.可以用以遍歷其所有
相關.這樣客戶就只需一個某一個物件.而不必考慮與該物件相關的其它物件.並且當
客戶加入新物件的時候.整體也能明白區域性所發生的問題.
還記得小時候玩的電動機器人嗎?升級馬達,加入新的武器.這樣可以提高機器人的整體效能.
OK我們來模擬該環境下的機器人
//區域性
abstract class Component{
protected string partName;
protected int Power;
public Component(string Name){
partName=Name;
}
}
//整體(整體也肯能是某個其它整體的區域性所以必須派生自Component)寫成抽象類是為了方面擴充套件
abstract class MacroCity : Component{
protected int Item;
//用於實際區域性物件
protected ArrayList MacroTree =new MacroTree();
public MacroCity(string name){
base(name);
}
protected void Add(Component ct){
MacroTree.Add(ct);
}
protected void Remove(Component ct){
while(Comp cn=Next()){
if(ct.partName==cn.partName)
MacroTree.Remove(ct);
}
}
protected Component Next(){
Item=MacroTree.Count-1;
if(Item>0)
return MacroTree(Item);
else
return null;
}
protected void ChangePow(){
while(Componet cn=Next(){
this.Power+=cn.Power;
}
}
}
//實現區域性
public class HandPart : Componet{
public HandPart(){
base("Hand");
this.Power=200;
}
}
public class FeetPart : Componet{
public FeetPart(){
base("Feet");
this.Power=400;
}
}
public class BodyPart : Componet{
public BodyPart(){
base("Body");
this.Power=800;
}
}
public class HeadPart : Componet{
public HeadPart(){
base("Head");
this.Power=100;
}
}
//整體實現
public class myMacro :MacroCity{
}
//客戶裝配
public class Client{
public static int Main(string[] args){
myMacro mm=new myMacro("myMacroCity");
HandPart hap=new HandPart();
HeadPart hep=new HeadPart();
FeetPart Fp=new FeetPart();
BodyPart Bp=new BodyPart();
mm.Add(hap);
mm.Add(hep);
mm.Add(Fp);
mm.Add(Bp);
mm.ChangePow();
Console.Writeline("整體效能: " + mm.Power);
//假設手臂遭到Power - 50
hap.Power-=50;
Console.Writeline("整體效能: " + mm.Power);
//如果腳部徹底損害
mm.Remove(Fp);
Console.Writeline("整體效能: " + mm.Power);
}
}
由此看來只要區域性發生變化馬上就會放映到整體情況.這就是Composite的優點
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998913/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【區域性特徵】ASIFT特徵
- 論文解讀丨基於區域性特徵保留的圖卷積神經網路架構(LPD-GCN)特徵卷積神經網路架構GC
- 徒駭河流經區域
- Java™ 教程(區域性類)Java
- rtabmap 區域性建圖
- VUE-區域性使用Vue
- 區域性內部類
- 程式效能優化-區域性性原理優化
- C#隱式型別區域性變數經驗總結C#型別變數
- Flutter 使用Navigator進行區域性跳轉頁面Flutter
- torch神經網路--線性迴歸神經網路
- python學習筆記 區域性和全域性作用域Python筆記
- vue.js全域性元件和區域性元件區別Vue.js元件
- Flutter 區域性路由實現Flutter路由
- 影片區域性打馬賽克
- 全域性變數與區域性變數變數
- 區域性線性嵌入(LLE)原理總結
- 分割槽索引:區域性 locally & 全域性 global索引
- C++程式設計經驗-返回區域性變數的討論C++程式設計變數
- C語言區域性變數、全域性變數、靜態區域性變數、靜態全域性變數C語言變數
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- (一)線性迴圈神經網路(RNN)神經網路RNN
- 重磅! flutter檢視區域性更新Flutter
- jQuery重新整理區域性divjQuery
- laravel 區域性排除中介軟體Laravel
- Mac圖片區域性擦除工具Mac
- 區域性性原理——各類優化的基石優化
- Java區域性變數與全域性變數Java變數
- java 全域性變數和區域性變數Java變數
- Python的全域性和區域性變數Python變數
- JavaScript —— 區域性變數和全域性變數JavaScript變數
- jmeter全域性變數和區域性變數JMeter變數
- 【c】全域性變數與區域性變數變數
- AI發展三境:神,神經,神經病AI
- 深入瞭解C語言(區域性變數的定義) (轉)C語言變數
- (二)非線性迴圈神經網路(RNN)神經網路RNN
- 第三章:線性神經網路神經網路
- 走下神壇的專案經理(轉)