設計专题

好的設計:易于擴展且能夠保持簡單、健壯

好的設計:易于擴展且能夠保持簡單、健壯。

信息系統通用緩存設計

!請勿轉載!   一、概述 设计一个这样的通用缓存,是基于目前 Erp 系统中对缓存的使用没有一个统一的机制的局面,为了最大化的提高程序效能,优化对资料库的访问,简化对缓存数据的访问代码编写。以及还有一些我暂时还没有想到的好处。 分为 5 個部分: 1. 緩存的對象類型   a.n 個 TCachedArray ,數組類集合

喜愛的程式設計名言

爸爸和无我编程十条诫律: http://www.aqee.net/dad-and-the-ten-commandments-of-egoless-programming/ 理解和接受自己会犯错误。关键是要尽早发现,在错误进入到最终产品前发现它们。幸运的是,除了我们少数几个在喷气推进实验所开发火箭导航系统的人外,在软件行业中犯错误通常不会导致灾难性事故。我们可以,也应该从错误中吸

德沃夏克鍵盤(英語:或),是鍵盤排列的一种方式。它由美國教育心理學家奥古斯特·德沃夏克()和其表親威廉·迪利()在1930年代期間設計,是主流鍵盤排列QWERTY鍵盤的競爭對手。

德沃夏克鍵盤(英語:或),是鍵盤排列的一种方式。它由美國教育心理學家奥古斯特·德沃夏克()和其表親威廉·迪利()在1930年代期間設計,是主流鍵盤排列QWERTY鍵盤的競爭對手。 德沃夏克鍵盤按鍵排列 概觀 Apple IIc是第一款內建德沃夏克鍵盤电脑 德沃夏克和迪力在研究過字母頻率和手的生理结构之後,依以下的宗旨设计了这种键盘的排列方式: 以使用英語為設計出發點能讓雙手交互輸

設計模式之Interpreter(解釋器)

Interpreter定義:定義語言的文法 ,並且建立一個解釋器來解釋該語言中的句子。 Interpreter似乎使用面不是很廣,它描述了一個語言解釋器是如何構成的,在實際應用中,我們可能很少去構造一個語言的文法。我們還是來簡單的瞭解一下: 首先要建立一個介面,用來描述共同的操作。 public interface AbstractExpression {    void interpret

設計模式之Mediator(仲介者)

Mediator定義:用一個仲介物件來封裝一系列關於物件交互行爲。 爲何使用Mediator?各個物件之間的交互操作非常多;每個物件的行爲操作都依賴彼此對方,修改一個物件的行爲,同時會涉及到修改很多其他物件的行爲,如果使用Mediator模式,可以使各個物件間的耦合鬆散,只需關心和 Mediator的關係,使多對多的關係變成了一對多的關係,可以降低系統的複雜性,提高可修改擴展性。 如何使用?

設計模式之Strategy(策略)

Strategy是屬於設計模式中 物件行爲型模式,主要是定義一系列的演算法,把這些演算法一個個封裝成單獨的類別。 Stratrgy應用比較廣泛,比如, 公司經營業務變化圖, 可能有兩種實現方式,一個是線條曲線,一個是框圖(bar),這是兩種演算法,可以使用Strategy實現。 這裏以字串替代爲例, 有一個文件,我們需要讀取後,希望替代其中相應的變數,然後輸出。關於替代其中變數的方法可能有多種

設計模式之State

State的定義: 不同的狀態,不同的行爲;或者說,每個狀態有著相應的行爲。 何時使用?State模式在實際使用中比較多,適合"狀態的切換"。因爲我們經常會使用If elseif else 進行狀態切換, 如果針對狀態的這樣判斷切換反復出現,我們就要聯想到是否可以採取State模式了。 不只是根據狀態,也有根據屬性。如果某個物件的屬性不同,物件的行爲就不一樣,這點在資料庫系統中出現頻率比較高,

設計模式之Command

Command模式是最讓我疑惑的一個模式,我在閱讀了很多代碼後,才感覺隱約掌握其大概原理,我認爲理解設計模式最主要是掌握起原理構造,這樣才對自己實際編程有指導作用。Command模式實際上不是個很具體,規定很多的模式,正是這個靈活性,讓人有些confuse。 Command定義不少Command模式的代碼都是針對圖形介面的,它實際就是功能表命令,我們在一個下拉功能表選擇一個命令時,然後會執行一些

設計模式之Observer

Java深入到一定程度,就不可避免的碰到設計模式(design pattern)這一概念,瞭解設計模式,將使自己對java中的介面或抽象類別應用有更深的理解。設計模式在java的中型系統中應用廣泛,遵循一定的編程模式,才能使自己的代碼便於理解,易於交流,Observer(觀察者)模式是比較常用的一個模式,尤其在介面設計中應用廣泛,而本站所關注的是Java在電子商務系統中應用,因此想從電子商務實例中

設計模式之Memento(備忘機制)

Memento定義:memento是一個保存另外一個物件內部狀態拷貝的物件。這樣以後就可以將該物件恢復到原先保存的狀態。 Memento模式相對也比較好理解,我們看下列代碼: public class Originator {    private int number;   private File file = null;   public Originator(){}   // 創建

設計模式之Flyweight(享元)

Flyweight定義:避免大量擁有相同內容的小類別的開銷(如耗費記憶體),使大家共用一個類別(元類別)。 爲什麽使用?面向物件語言的原則就是一切都是物件,但是如果真正使用起來,有時物件數可能顯得很龐大,比如,文字處理軟體,如果以每個文字都作爲一個物件,幾千個字,物件數就是幾千,無疑耗費記憶體,那麽我們還是要"求同存異",找出這些物件群的共同點,設計一個元類別,封裝可以被共用的類別,另外,還有一

設計模式之Bridge

Bridge定義 :將抽象和行為劃分開來,各自獨立,但能動態的結合. 為什麼使用?通常,當一個抽象類或介面有多個具體實現(concrete subclass),這些concrete之間關係可能有以下兩種:1. 這多個具體實現之間恰好是並列的,如前面舉例,打樁,有兩個concrete class:方形樁和圓形樁;這兩個形狀上的樁是並列的,沒有概念上的重複,那麼我們只要使用繼承就可以了.2.實際應用

設計模式之Decorator(油漆工)

Decorator常被翻譯成"裝飾",我覺得翻譯成"油漆工"更形象點,油漆工(decorator)是用來刷油漆的,那麼被刷油漆的物件我們稱decoratee.這兩種實體在Decorator模式中是必須的.   Decorator定義:動態給一個物件添加一些額外的職責,就象在牆上刷油漆.使用Decorator模式相比用生成子類方式達到功能的擴充顯得更為靈活.  為什麼使用Decorator?我

電腦視覺定位系統設計與實現

http://ndltd.ncl.edu.tw/cgi-bin/gs32/gsweb.cgi/ccd=WjnVUZ/record?r1=58&h1=1 本論文中,將設計一電腦視覺自動定位系統。本論文藉由改進影像辨識與影像定位的方法,提升電腦視覺自動定位系統的工作速率。影像辨識方面,本論文提出迴圈式樣板比對,迴圈式樣板比對相較於樣板比對或是二階段樣板比對,再相同的實驗環境下,迴圈式樣板比對消耗較少