自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java設(shè)計模式與應(yīng)用淺談

開發(fā) 后端
本文向您介紹Java設(shè)計模式和一些應(yīng)用,作者根據(jù)自己學(xué)習(xí)Java設(shè)計模式的經(jīng)驗,結(jié)合具體實例對設(shè)計模式的概念與應(yīng)用進(jìn)行剖析。

最近一直在看《Design Patterns: Elements of Reusable Object-Oriented Software》這本書,不知道看過這本書的人是不是有摸不到頭緒,無處下手的感覺, 書里面講述的23種Java設(shè)計模式經(jīng)常把我弄的一蹋糊涂,這本書不看個三、四遍以上是很難理解的, 而且即便看了幾遍, 也是很難把握住精髓。

里面講解的例子是用C++和SMALLTALK這兩種OO語言。對于我這種對C++半生不熟的笨鳥來說, 難度是不是太高了些.而且例子的講解并不能使讀者融會貫通。

我看書的原則就是看不懂的話就過段時間再看,沒聽說過“大俠請重新來過”么。(而且我看書, 從來不對一本書感冒, 經(jīng)常是講同一類知識的書穿插著看。對于設(shè)計模式---中文版的好象只有這么一本,E文的倒有一些。)由于已經(jīng)看了幾遍, 對Design Pattern 結(jié)構(gòu),內(nèi)容整體上都有了一定的了解,所以剩下的就該用實際的例子來幫我理解掌握Design Patterns。如果這時再返回頭重新看書, 會有種山重水復(fù)疑無路, 柳岸花明又一村的感覺。(連點掌聲都沒有)

其實在JAVA中,到處可見Design Patterns,JDK是設(shè)計模式的典型應(yīng)用。常用的AWT, 里面包含了AbstractFactory,Composite,Bridge, Strategy,Command,SINGLETON等等模式 我就不細(xì)說的啦, 有興趣的朋友可以自己研究, 希望能把心得發(fā)給我一份, false@263.net, 我會感激的哭的…… ^_- , 迷時師度, 悟時自度。 共同學(xué)習(xí)進(jìn)步么。 這里介紹幾本關(guān)于設(shè)計模式的JAVA書先?!禩HE DESIGN PATTERNS JAVA COMPANION》《Thinking in Patterns with Java》 有興趣的可以去找來看看。E文的. ( FALSE:不要急, 沒看見我在醞釀情緒么, 君不見黃河之水天上來,奔流到海不 復(fù)回么,菩提本無樹, 鏡臺亦非明)

實例剖析

Java是個龐大的體系,APPLET,APPLICATION ,JSP/SERVET,EJB,RMI,CORBA,嵌入式JAVA.......應(yīng)用的范圍很廣。現(xiàn)在學(xué)習(xí)JAVA的,很多人都是從JSP入手的。不象97,98年那時是從applet,application開始。目前相當(dāng)多的人單純的為了學(xué)JSP而學(xué)JSP,Java的基礎(chǔ)很薄, 可惜可嘆。為了使大家對設(shè)計模式有所了解,體會DESIGN PATTERNS 在jsp/servlet的應(yīng)用,進(jìn)而擴(kuò)展到j(luò)ava。這里采用JIVE做為例子。JIVE是基于JSP/SERVLET技術(shù)的FORUM,是個open source的software 產(chǎn)品。 到這里可以下載http://www.coolservlets.com/jive。 它的優(yōu)秀性就不用我多說了。使用JSP/SERVLET做開發(fā)的人都知道。很多人都是靠研究它入門的。 NOTE: 本文不是講解JSP/SERVLET語法、具體實現(xiàn)和編程技巧。如果你需要這些,恐怕我會讓你失望的, 還是請到google去search吧。這里主要是通過JIVE來解析THINKING IN DESIGN PATTERNS FOR JAVA . 包括對象的創(chuàng)建,對象和對象間的結(jié)構(gòu)組合以及對象行為等。由于涉及很多OOP的概念,例如類,對象,繼承,接口,抽象,封裝等等這些亂七八糟的東東。如果對OOP和JAVA不太了解,建議請看《THINKING IN JAVA》這本書。

也有可能我寫的內(nèi)容里面會涉及到UML的內(nèi)容, 這下各位可有福了,由于本人的水平實在不怎么樣,這些Java設(shè)計模式我能說多少就是多少了。

分類

根據(jù)模式的目的將23種Java設(shè)計模式分為三類:創(chuàng)建型(Creational),結(jié)構(gòu)型(Structural)和行為型(Behavioral)模式。

創(chuàng)建型(Creational):創(chuàng)建型模式是用來創(chuàng)建對象的。我們在coding時經(jīng)常要對類進(jìn)行實例化, 創(chuàng)建型模式就是提供提供各種不同的solution,從實例化的代碼中去除硬編碼(hard-coding), 從而使編碼更加靈活和general, 適用于更復(fù)雜的行為。 ·Factory Method ·Abstract Factory Method ·Builder Pattern ·Prototype Pattern ·Singleton Pattern 結(jié)構(gòu)型(Structural)

結(jié)構(gòu)型模式處理類或?qū)ο蟮慕M合來獲得更大的結(jié)構(gòu): · Adapter pattern · Composite pattern, · Proxy pattern, · Flyweight pattern, · Façade pattern, · Bridge pattern, · Decorator pattern, 行為型(Behavioral)

行為型模式處理類或?qū)ο笕绾谓换?/STRONG> : Observer pattern · Mediator · Memento · Chain of Responsibility · Template pattern · Interpreter in a program. · Strategy pattern · Visitor pattern · State pattern · Command pattern · Iterator pattern

下面將對JIVE的內(nèi)核來說說DESIGN PATTERNS

分析JIVE不是件容易的事情, 里面涉及OOP的東東很多,所以最好能使用工具。 欲善其事, 必先利其器。呵呵, 我用RATIONAL ROSE, 因為rose實現(xiàn)了UML,能很好 的把設(shè)計思路和各種類,接口,對象及之間的關(guān)系體現(xiàn)出來。我想通過類圖和code結(jié)合來 看,這樣會比只看code效果來的好。 (你也可以使用JBUILDER或j++, 不在于使用什么, 關(guān)鍵看哪個的項目管理方便。我用建模工具rose) 這里使用RATIONAL ROSE的一個功能----JAVA逆向轉(zhuǎn)出工程 (我覺的通過這個功能和生成JAVA代碼這個功能對我提高很大, 不管是掌握J(rèn)AVA還是掌握UML&ROSE) FIRST,需要將JDK導(dǎo)入到rose里. 然后選擇菜單TOOLS=>JAVA=>REVERSE ENGINEER JAVA 打開REVERSE ENGINEER JAVA窗口,選擇JIVE里我們需要的servlet源碼 逆向生成模型。當(dāng)然你需要把classpath設(shè)置正確。 Jive里使用了很多的interface和abstract class, 這是面向?qū)ο罄锿ǔJ褂玫摹?

為了code的復(fù)用和靈活性, DESIGN PATTERNS 的一個非常重要的原則:針對接口編程,而不是針對實現(xiàn)編程。第二個原則就是: 優(yōu)先使用對象組合,而不是類繼承。 2.2.1 com.coolservlets.forum package 這個package里包括很多class和interface。主要封裝forum的基本操作。 (什么是class和interface? 呼呼。。。。。。趁我沒還吐血你趕緊去查資料吧。) 不管是使用CGI、ASP還是PHP甚至JSP/SERVLET,我相信很多人或大或小,或簡單或復(fù)雜, 都做過BBS。

那么建議大家看看JIVE是如何設(shè)計和實現(xiàn)這些Java設(shè)計模式的。每個人看問題的角度是不一樣 的,不管您從哪個角度來看, 我相信你都會從中獲得營養(yǎng)。

 

【編輯推薦】

  1. JSP設(shè)計模式中的兩種常見模式
  2. 設(shè)計模式在EJB中的應(yīng)用
  3. 探討JSF框架中使用的設(shè)計模式
  4. J2EE設(shè)計模式之Template
  5. J2EE常用的設(shè)計模式
責(zé)任編輯:佚名 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2009-05-04 13:19:27

2020-06-08 08:04:49

設(shè)計模式結(jié)構(gòu)型接口

2009-09-02 16:23:27

C# Singleto

2015-09-06 11:07:52

C++設(shè)計模式單例模式

2009-06-03 14:13:21

ibmdwWebSphere

2011-09-06 09:27:15

項目設(shè)計

2012-04-24 09:55:29

.NET

2011-07-21 14:33:02

設(shè)計模式

2009-06-24 17:05:10

2015-11-03 09:28:52

Hybrid技術(shù)設(shè)計實現(xiàn)

2011-09-07 09:21:01

設(shè)計模式

2009-07-14 11:08:42

WebRendererSwing應(yīng)用程序

2009-03-11 09:33:11

Lotus開發(fā)Workflow

2009-02-17 18:17:42

2012-08-30 09:07:33

設(shè)計模式

2013-03-28 13:08:15

Web緩存

2014-12-29 10:39:16

JS

2010-07-28 15:21:00

NFSSolaris

2011-07-20 14:04:42

.NET策略模式

2013-05-27 12:59:22

設(shè)計模式GoF
點贊
收藏

51CTO技術(shù)棧公眾號