【文章內(nèi)容簡(jiǎn)介】
int width = (int) (radius * 2)。 ()。 (x, y, width, width)。 }}package StrategyPattern。import 。import 。import 。public class strategyB extends strategy{ public Point p1,p2,p3。 public Point getCircumcenter(Point p1, Point p2, Point p3) { double a = 2 * ( )。 double b = 2 * ( )。 double dp1= * + * 。 double dp2= * + * 。 double dp3= * + * 。 double c = dp2 dp1。 double d = 2 * ( )。 double e = 2 * ( )。 double f = dp3dp2。 double x = (b * f e * c) / (b * d e * a)。 double y = (d * c a * f) / (b * d e * a)。 return new Point((int) x, (int) y)。 } public void drawing(Graphics g,Point p1,Point p2,Point p3){ (,)。 (,)。 (,)。 Point center = getCircumcenter(p1, p2, p3)。 double radius = (p1)。 int x = (int) ( radius)。 int y = (int) ( radius)。 int width = (int) (radius * 2)。 ()。 (x, y, width, width)。 }}運(yùn)行結(jié)果: 畫圖功能分析 畫一個(gè)圖形當(dāng)選定畫一個(gè)圖形后,由外觀模式確定畫圖的類型,并且得到一個(gè)具體的圓形類、矩形類或按鈕類的對(duì)象。由鼠標(biāo)按下的點(diǎn)確定圓形對(duì)象的圓心或者矩形和按鈕對(duì)象的起始點(diǎn),鼠標(biāo)起來(lái)的點(diǎn)和按下點(diǎn)的關(guān)系確定圓形對(duì)象的半徑或者矩形和按鈕對(duì)象的長(zhǎng)度和寬度。然后將該對(duì)象的所有信息包括上面所述的信息和圖形類型、畫筆顏色和畫筆寬度設(shè)置好了后,加入享元類中。 畫組合圖 選中圖形關(guān)于選中圖形,采用遍歷享元的方式,考慮到一般情況先前一個(gè)圖的區(qū)域會(huì)被后面所畫的圖區(qū)域覆蓋,那么我們從享元的后面開始遍歷,當(dāng)鼠標(biāo)按下的點(diǎn)位于某個(gè)對(duì)象區(qū)域之中時(shí),改變其顏色,并且提供移動(dòng)其位置的功能。當(dāng)選中一個(gè)圖形時(shí),可以使用加裝飾或者減裝飾的功能,還可以提供放大和縮小的功能。當(dāng)選擇了選取功能時(shí),就不能畫圖了,當(dāng)我們選擇“取消選取”后,取消了關(guān)于選取圖形的操作,又可以畫圖了。 加、減裝飾首先,你需要確定裝飾的圖形(對(duì)象)是哪個(gè),需要選取那個(gè)圖形。當(dāng)選好需要對(duì)那個(gè)圖形后,創(chuàng)建裝飾類的對(duì)象,然后給選定的對(duì)象加或者減裝飾。在該系統(tǒng)中,加、減裝飾是對(duì)于畫筆大小的操作,如果是加裝飾那么就一個(gè)增加畫筆的大小,否則減小畫筆的大小到最小就不能減小了。 復(fù)制最后shape復(fù)制最后一個(gè)圖形我們可以采用原型模式。在使用原型模式的時(shí)候要注意使用的是深拷貝,如果是淺拷貝,那么當(dāng)將新的復(fù)制后的對(duì)象加入到享元后,其實(shí)是一個(gè)對(duì)象的兩個(gè)副本,就不會(huì)顯示出使用原型模式的特點(diǎn)。當(dāng)然,我們需要依據(jù)類型來(lái)賦值返回具體的圖形。設(shè)計(jì)模式(Design pattern):是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。設(shè)計(jì)模式的種類很多,包括分布式編程模式、用戶界面模式、數(shù)據(jù)模型模式三大類。目前流行的面向?qū)ο笤O(shè)計(jì)模式,僅1995年“gang of four” 描述的就有二十多種,稱之為GoF模式;與GoF模式相對(duì)應(yīng)的是通用責(zé)任分配軟件系列模式GRASP。GRASP模式著重考慮設(shè)計(jì)類的原則及如何分配類的功能,而GoF模式則著重考慮設(shè)計(jì)的實(shí)現(xiàn)、類的交互及軟件質(zhì)量??梢哉f(shuō),GoF模式就是符合GRASP模式要求的面向?qū)ο笤O(shè)計(jì)模式。設(shè)計(jì)模式的作用:(1)重用設(shè)計(jì),它比簡(jiǎn)單的重用代碼更有意義;(2)為設(shè)計(jì)提供共同的詞匯,每個(gè)模式名就是一個(gè)設(shè)計(jì)詞匯,其概念使得程序員間的交流更加方便;(3)在開發(fā)文檔中采用設(shè)計(jì)模式詞匯可以讓其他人更任意理解你的想法,理解為什么你會(huì)這么做,你都做了些什么。編寫開發(fā)文檔也更加任意;(4)應(yīng)用設(shè)計(jì)模式可以讓重構(gòu)系統(tǒng)變得容易,可確保開發(fā)正確的代碼,并降低在設(shè)計(jì)或?qū)崿F(xiàn)中出錯(cuò)誤的可能性;(5)可以節(jié)省大量時(shí)間。 下面是贈(zèng)送的廣告宣傳方案不需要的朋友可以下載后編輯刪除?。。。。?廣告宣傳方案每個(gè)人在日常生活中都有意、無(wú)意的接受著廣告的洗禮,繼