I want to fly higher
programming Explorer
BlogJava
首頁
新隨筆
新文章
聯系
聚合
管理
posts - 114,comments - 263,trackbacks - 0
<
2016年11月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆分類
(161)
Book(25)
ClassLoader(5)
Concurrency
Dababase
GameServer(10)
HighPerformance
HotSwap(9)
IO
JVM(6)
Language(2)
Mobile
NetWork(2)
NoSQL
Note(8)
OS(6)
Program(69)
Script(1)
ServerFramework(6)
Shell
Sources(8)
Translations
Utils(4)
隨筆檔案
(114)
2018年6月 (1)
2018年3月 (1)
2017年3月 (2)
2017年2月 (2)
2017年1月 (1)
2016年11月 (2)
2016年7月 (4)
2016年6月 (3)
2016年5月 (2)
2015年12月 (2)
2015年10月 (1)
2015年8月 (1)
2015年7月 (4)
2015年6月 (5)
2014年12月 (1)
2014年11月 (4)
2014年4月 (1)
2014年3月 (3)
2014年2月 (5)
2014年1月 (1)
2013年12月 (7)
2013年11月 (4)
2013年8月 (5)
2013年7月 (3)
2013年3月 (6)
2013年1月 (6)
2012年7月 (1)
2011年12月 (9)
2011年8月 (2)
2011年5月 (1)
2011年2月 (2)
2011年1月 (1)
2010年12月 (2)
2010年11月 (1)
2010年7月 (8)
2010年4月 (3)
2010年3月 (3)
2010年2月 (2)
2010年1月 (2)
文章分類
(2)
學習筆記(2)
文章檔案
(2)
2011年12月 (2)
Alibaba
搜索技術博客-淘寶
淘寶開源項目
阿里中間件團隊博客
阿里技術嘉年華
阿里核心系統團隊博客
Comprehensive
InfoQ - 促進軟件開發領域知識與創新的傳播
LinkedIn
stackoverflow
伯樂在線
內存-溢出 為程序員服務
騰訊大講堂
解道
Expert
jrebel
國外牛博
并發編程高手
莊周夢蝶
洞庭散人
美團技術博客
褚霸
Game
云風
Java
JavaEye做最棒的軟件開發交流社區
coderanch
IBM developerWorks 中國 Java 技術專區
Java Tutorials
Javalobby
javapapers
java-source
java-tips
javaworld
Java極客
Java譯站
Programming Tutorial
TheServerSide
專注Java & Android 技術分享
并發編程網
搜索
積分與排名
積分 - 598737
排名 - 78
最新評論
1.?re: Eclipse反編譯工具Jad及插件JadClipse配置
剛剛問題解決了,file types中, .class下還有一個 .class without source。
把這個也設置成JadClipse為默認選項打開嘛,即可。
謝謝版主~~~
--tangyuan
2.?re: Eclipse反編譯工具Jad及插件JadClipse配置
eclipse4.6版本,按照上述來的不行,版主還有推薦的反編工具嘛,推薦一個呢
--tangyuan
3.?re: 交換兩個值,不用臨時變量(C位運算)[未登錄]
評論內容較長,點擊標題查看
--123
4.?re: Markdown基礎語法及發布blog
確實很基礎的語法,很容易就學會了!
--有機綠茶
5.?re: Java8之Stream/Map[未登錄]
總結的很詳細!
--jay
閱讀排行榜
1.?Eclipse反編譯工具Jad及插件JadClipse配置(134345)
2.?Unknown Source的出現及解決(39483)
3.?MMORPG服務器架構(33461)
4.?Java8之Stream/Map(24530)
5.?淺談Eclipse dropins插件安裝的"坑"(附m2e的各個版本插件下載)(19622)
oop-模式-架構設計基礎(一)
示例切入(鴨子游戲)
游戲中會有各種鴨子,一邊游泳,一邊咕咕叫
設計了一個鴨子的抽象基類,并讓各種鴨子繼承此基類
如果讓
鴨子飛
,怎么辦?
問題
并非所有的鴨子都能飛,在基類中增加fly會導致所有的子類都具備fly,連那些不該具備fly的子類也無法排除
非常粗暴的解決辦法就是每個子類都要仔細判斷是否要覆寫相關邏輯,比如不會飛的鴨子那么覆寫fly方法,什么事情都不做即可;如果遇到不是咕咕叫的鴨子,則覆寫quack方法
繼承的缺點
代碼在多個子類中重復
很難知道所有鴨子的全部行為
運行時的行為不容易改變
改變會牽一發動全身
每當新增新的鴨子子類,需要被迫檢查并可能需要覆蓋fly和quack方法--噩夢啊
使用接口
把fly從基類中抽出來,放進一個Flyable接口,只有會飛的鴨子才實現此接口;同樣的方式,設計一個Quackable接口,因為并非所有鴨子都會叫
問題
解決了一部分問題,不會再有“會飛的橡皮鴨(繼承方式)”
但無法進行代碼復用-如后續幾十個能飛的鴨子的飛行邏輯一致,不但每一個子類都需要寫一遍(大量重復的代碼)而且如果修改飛行邏輯的話,則需要全部都修改一遍
歸零
使用繼承不能很好的解決問題,鴨子的行為在子類不斷的改變并且讓所有的子類都有這些行為是不恰當的
使用Flyable和Quackable接口解決了一部分問題,只有會飛的鴨子才會實現Flyable.但是Java接口不具有實現代碼,所有實現接口無法達到達到代碼的復用
設計原則
找出應用中可能需要變化之處,把他們獨立出來,不要和那些不需要變化的代碼混在一起
把變化的部分取出并封裝起來,以便以后可輕易的改動或擴充此部分而不影響不需要變化的的其他部分
分開變化和不會變化的部分
面向接口編程,而不是面向實現編程
飛行行為和咕咕叫行為已經和鴨子類無關了
整合
最終版本
多用組合,少用繼承
S.O.L.I.D 面向對象設計五大基本原則
S-單一職責原則
一個類應該只有一項工作
如計算類只負責計算,而不負責展示,展示需要交由單獨的展示類進行處理
O-開放封閉原則
對擴展開放,對修改關閉
一個類無需修改類本身卻容易擴展
如計算類中的計算圖形面積方法大量的if/else,增加圖形要增加大量的if/else-改由圖形本身去計算
L-里氏替換原則
每一個子類或派生類應該可以替換它們基類或父類
I-接口隔離原則
不應強迫客戶端實現一個它用不上的接口,或是說客戶端不應該被迫依賴它們不使用的方法
D-依賴反轉原則
依靠抽象而不是具體實現。它表示高層次的模塊不應該依賴于低層次的模塊,它們都應該依賴于抽象
面向模式的軟件架構
架構模式
Layers/Pipes and Filters/Blackboard/Microkernel/BrokerMVC/PACReflection
Whole-Part/Master-Slave/Proxy/Command Processor/View Handler/Forwarder-Receiver/Client-Dispatcher-Server/publisher-subscriber/
Reactor/Proactor/Acceptor-Connector/Aysnchronous Completion Token/Active Object/Thread-Speific Storage
Loopup/Lazy Acquisition/Caching/Pooling/Resouce Lifecycle Manager/
設計模式
The 23 Gang of Four Design Patterns
Creational Patterns
Abstract Factory/Builder/Factory Method/Prototype/Singleton
Structural Patterns
Adapter/Bridge/Composite/Decorator/Facade/Flyweight/Proxy
Behavioral Patterns
Chain of Resp/Command/Interpreter/Iterator/Mediator/Memento/Observer/State/Strategy/Template/Visitor
成例
特定語言的,如引用計數(CounterPointer)
抽象、封裝、信息隱藏、模塊化、分離關注點、耦合與內聚、充分-完整-簡單、策略與實現分離、接口與實現分離、單個引用點、分而治之
landon:抽象(個人認為寫代碼最高境界就是抽象)、解耦、開閉
JDK源代碼淺析
經典的集合框架
ref
《Head First Design Patterns》
《Pattern-Oriented Software Architecture》
posted on 2016-11-04 11:31
landon
閱讀(2447)
評論(0)
編輯
收藏
所屬分類:
ServerFramework
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
一個入門rpc框架的學習
Java游戲服務器基礎技術體系
oop-模式-架構設計基礎(一)
《大型網站系統與Java中間件實踐》讀書筆記
Disruptor入門Ⅰ-Getting Started
Vertx VS Undertow Ⅰ
Copyright ©2025 landon Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
亚洲成年轻人电影网站www
|
久久精品国产亚洲沈樵
|
亚洲卡一卡二卡乱码新区
|
99久9在线|免费
|
亚洲网站在线观看
|
99re免费99re在线视频手机版
|
亚洲精品自在在线观看
|
18禁在线无遮挡免费观看网站
|
久久亚洲国产精品一区二区
|
久久久精品午夜免费不卡
|
亚洲人成网www
|
国产免费久久精品99re丫y
|
亚洲久悠悠色悠在线播放
|
在线看片无码永久免费aⅴ
|
精品久久久久亚洲
|
亚洲精品无码久久久
|
a国产成人免费视频
|
亚洲视频在线免费播放
|
毛片免费视频观看
|
国产精品久久亚洲一区二区
|
亚洲一区精品伊人久久伊人
|
好紧我太爽了视频免费国产
|
亚洲精品乱码久久久久久下载
|
国产精品成人免费一区二区
|
美女黄频视频大全免费的
|
中文字幕不卡亚洲
|
五月婷婷在线免费观看
|
爱情岛亚洲论坛在线观看
|
久久精品国产这里是免费
|
亚洲日本香蕉视频观看视频
|
精品国产一区二区三区免费看
|
xxxxx做受大片视频免费
|
日韩亚洲Av人人夜夜澡人人爽
|
在线a人片天堂免费观看高清
|
一区二区三区精品高清视频免费在线播放
|
在线精品亚洲一区二区三区
|
91在线手机精品免费观看
|
国产亚洲精品bv在线观看
|
不卡精品国产_亚洲人成在线
|
色片在线免费观看
|
一区二区视频免费观看
|