天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

對象的自治和行為的擴展與適配

  在壞的設計中,數據往往是分散的,甚至是雜亂的,這就好像一群失去意識的猛獸,我們無法控制、協調以及管理它們。這種漫無頭緒的散亂數據,猶如猛獸的肆意妄為,會給系統帶來無盡的災難。隨著系統的演化,這種災難會逐漸蔓延至系統的各個角落。因此,在面向對象設計過程中,對數據分類是識別對象的一個前提。但是,僅僅封裝了數據的對象,如果沒有操作數據的行為,仍舊是沒有意識的死亡對象。

  我始終認為,對象在擁有自己數據的情況下,應該是自治的。這種“自治”類似于SOA中服務自治的概念,但由于對象應該保持足夠合理的細粒度,因此這種自治是有限度的自治;或者說它體現的是專家的自治。如果對象擁有足夠的數據信息,就必須樹立這些信息的權威,這些信息的處理就應該由對象自己來完成。如果它擁有的信息量不夠,或者根本不具備,則可以委派給其他對象。此時,行為即對象的意識,是對象能夠自治的前提。

  對象自治依賴于面向對象設計的一個重要原則,即對象的數據與行為應該封裝在一起。Craig Larman提出的“信息專家模式”正是說明了這一點,該模式認為擁有信息的對象才是處理這些信息的專家。

  對象自治是一個很有趣的概念,我們把對象擬人化,使得對象成為組成社區的基本元素。在這個社區里,每個對象的行動都應該由自己來控制。無論是完成某個操作,還是發出請求,或者響應事件,對象都應該有自己的判斷。判斷的合理性來自于它掌握的信息量,以及我們賦予它的意識的靈性。在構建軟件系統時,我們的目標就是要搭建這樣一個由自治對象組成的社區,而不是無序的混沌世界。每當我們在操作數據時,發現數據開始具有發散、混亂、模糊、蔓延等特征時,就是封裝數據的信號。不管這些數據的數量,還是大小,它都應該作為對象存在于系統,同時該對象應具備操作該數據的能力。

  例如在報表系統中,我們試圖將構建好的報表整體導出為Excel文件。我們為導出功能定義了專門的接口ExcelTableExporter,它接收一個報表對象和工作薄對象,導出報表到Excel文件中:

public interface ExcelTableExporter {
public void export(ReportTable table, WritableWorkbook workbook);
}

it知識庫對象的自治和行為的擴展與適配,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品国产三级国产AV麻豆 | 永久午夜福利视频一区在线观看 | 高中生被C到爽哭视频免费 高挑人妻无奈张开腿 | 亚洲日本激情 | 欧美深深色噜噜狠狠yyy | 我的美女奴隶 | 久久精品无码一区二区日韩av | 欧美人成在线观看ccc36 | 99视频网站| 国产人人为我我为人人澡 | 尤物国产在线精品三区 | 果冻传媒2021一二三在线观看 | 久久综合中文字幕佐佐木希 | 亚洲绝美精品一区二区 | 女同志videos最新另 | 黄色网址在线看 | 久久草这里全是精品香蕉频线观 | 竹菊精品久久久久久久99蜜桃 | 兰桂坊人成社区亚洲精品 | 色一欲一性一乱一区二区三区 | 亚洲中文字幕日本在线观看 | 国产一区二区不卡老阿姨 | 嫩草www视频在线观看高清 | 三级全黄的视频在线观看 | 久久久乱码精品亚洲日韩 | 中国女人内谢69XXXXXA片 | 国产69精品久久久久妇女 | 日本午夜精品久久久无码 | 俄罗斯破处 | 一边吃奶一边添P好爽故事 一边吃奶一边啪啪真舒服 一本之道加勒比在线观看 一本之道高清在线观看一区 | 国产精品嫩草免费视频 | 亚洲国产成人私人影院 | 无码一区二区在线欧洲 | 老司机试看午夜 | 国产av免费观看日本 | 午夜福利不卡片在线播放免费 | 老人FREE VIODES老少配 | 我在厨房摸岳的乳HD在线观看 | 久久亚洲精品成人综合 | 少妇无码吹潮久久精品AV网站 | 古装性艳史电影在线看 |