三個角色:環(huán)境(Context)角色:持有一個Strategy類的引用。抽象策略(Strategy)角色:通常由一個接口或者抽象類實(shí)現(xiàn),此角色給出所有的具體策略類所需的接口。具體策略(ConcreteStrategy)角色:包裝相關(guān)算法和行為為了幫助理解,我們舉例來說明。我們的程序要實(shí)現(xiàn)加密功能。加密有一個加密算法,加密算法有很多種,比如MD5,DES等,我們的程序需要實(shí)現(xiàn)這個功能,就是可以讓用戶選擇不同的加密算法進(jìn)行加密。這個過程我們可以用Strateg
系統(tǒng) 2019-08-29 23:23:58 1763
在手機(jī)游戲的開發(fā)中,要做多機(jī)型的適配,但是越來越多的機(jī)器開始支持觸摸屏操作。那么我們也要很好的去實(shí)現(xiàn)其觸摸屏的輸入,以讓玩家有類似甚至超過鍵盤控制的舒適感。下面是一個觸摸屏游戲按鈕管理思想,對游戲中人物的觸摸屏控制會在整理后放出。該思路并不一定是最佳的,只是我是這么實(shí)現(xiàn)的。-0-屏幕上所有可以被點(diǎn)擊的區(qū)域(RECT)按鈕都是一個對象,他們有自己被點(diǎn)擊的todo()方法,還有一個觸點(diǎn)管理器,該管理器控制添加觸摸按鈕以及清理所有觸摸按鈕和每個按鈕是否被點(diǎn)擊的判
系統(tǒng) 2019-08-29 23:06:39 1763
最近,一些著名的軟件推出后,老喜歡拿下載量來說事兒,比如之前的IE7,最近的Firefox3.0等。其實(shí)下載量,大家真的不用太當(dāng)回事,也并不能說明市場占有率或者受歡迎程度。傳統(tǒng)的抽樣調(diào)查方式,可能才是搞清楚真正市場狀態(tài)的最有效手段。自從有了計算機(jī)和網(wǎng)絡(luò)以來,就多了一群喜歡嘗鮮和折騰軟件的人,筆者因所學(xué)影響到性格,也對軟件試用趨之若鶩。但往往也是新鮮一陣子,用過后就刪除,安裝后就很少運(yùn)行過。真正工作、生活中用的上的實(shí)用軟件,其實(shí)就那幾種。前段時間升級了Fir
系統(tǒng) 2019-08-29 23:00:39 1763
Struts是一個技術(shù)框架,最先由CraigRMcClanahan編寫,并在2000年捐獻(xiàn)給ASF,目前已經(jīng)有很多個人和組織參與了Struts的開發(fā),使得Struts在幾年內(nèi)高速的成長。使其成為WEB應(yīng)用MVC模式中VC的事實(shí)標(biāo)準(zhǔn)。Struts最早是作為ApacheJakarta項(xiàng)目的組成部分,項(xiàng)目的創(chuàng)立者希望通過對該項(xiàng)目的研究,改進(jìn)和提高JavaServerPages、Servlet、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。Struts這個名字來源于在建筑和舊式飛
系統(tǒng) 2019-08-29 22:53:45 1763
系統(tǒng) 2019-08-29 22:48:29 1763
基于SEO的Log日志分析軟件應(yīng)該提供那些功能?今天是連續(xù)第3個要過了12點(diǎn)才睡的日子了,希望今天可以告一個段落.最近在考慮如何做基于SEO的日志分析工具,每天都熬夜,還真吃不消啊.當(dāng)用戶在瀏覽器地址欄輸入一個網(wǎng)址的時候,web服務(wù)器在返回用戶需要頁面的同時也記錄用戶的其他數(shù)據(jù),比如用戶的瀏覽器是什么牌子的,用戶使用的IP地址,操作系統(tǒng)甚至記錄了用戶是輸入的網(wǎng)址還是從其他鏈接跳轉(zhuǎn)過來的等等。(好羅嗦)這部分記錄無疑是最基礎(chǔ)也是最重要的數(shù)據(jù),很多web數(shù)據(jù)挖
系統(tǒng) 2019-08-29 22:46:26 1763
1.4消息轉(zhuǎn)換器MessageConverterMessageConverter的作用主要有兩方面,一方面它可以把我們的非標(biāo)準(zhǔn)化Message對象轉(zhuǎn)換成我們的目標(biāo)Message對象,這主要是用在發(fā)送消息的時候;另一方面它又可以把我們的Message對象轉(zhuǎn)換成對應(yīng)的目標(biāo)對象,這主要是用在接收消息的時候。下面我們就拿發(fā)送一個對象消息來舉例,假設(shè)我們有這樣一個需求:我們平臺有一個發(fā)送郵件的功能,進(jìn)行發(fā)送的時候我們只是把我們的相關(guān)信息封裝成一個JMS消息,然后利用
系統(tǒng) 2019-08-29 22:12:08 1763
創(chuàng)建表CREATETABLEorders(order_idINTPRIMARYKEYAUTO_INCREMENT,order_noVARCHAR(20),order_priceFLOAT);INSERTINTOorders(order_no,order_price)VALUES('aaaa',23);INSERTINTOorders(order_no,order_price)VALUES('bbbb',33);INSERTINTOorders(order_
系統(tǒng) 2019-08-29 22:10:21 1763
下面使用的spring-3.0版本來演示目標(biāo)任務(wù)1.配置最簡單的,spring應(yīng)用2.使用spring管理ServiceBean3.手動編寫代碼模擬spring的初始工作1.首先來看spring應(yīng)用中最基本的jar2.spring的配置文件(可以從spring的文檔中拷貝,或者spring自帶的案例中拷貝)
系統(tǒng) 2019-08-29 22:08:46 1763
上接《索引創(chuàng)建(2):DocumentWriter處理流程三》1.4索引數(shù)據(jù)池存儲細(xì)節(jié)倒排索引(token->postinglist)表的數(shù)據(jù)信息在內(nèi)存中并不是直接存儲在postingsHash中的,而是存放在三大數(shù)據(jù)緩沖池中——CharBlockPool,ByteBlockPool,IntBlockPool。這三個池均都由若干個固定長度的buffer數(shù)組構(gòu)成。DocumentsWriter對它們進(jìn)行管理和維護(hù)(包括分配新的塊或者回收不用的塊的操作),以達(dá)
系統(tǒng) 2019-08-29 21:59:45 1763