OOD設計原則之開篇詞

       

TDD是什麼

 TDD(Test-Driven Development)  測試驅動開發是敏捷開發中的一項核心實踐和技術,也是一種設計方法論。TDD得原理是在開發功能代碼之前,先編寫單元測試用例代碼,測試代碼確定需要編寫什麼產品代碼。TDD雖是敏捷方法的核心實踐,但不只適用於XP(Extreme

OOD設計原則之單一職責原則(SRP)

 單一職責原則(Single Responsibility Principle,SRP)最初是誰提出的我沒有考證,不過大師Robert C. Martin對SRP的解釋是:Each class should have one and only one reason to

OOD設計原則之依賴倒置原則(DIP)

依賴倒置原則(Dependency-Inversion Principle)是Robert C. Martin(!)在1996年為《C++ Reporter》所寫的專欄Engineering Notebook的第三篇(原文),後來加入到他在2002年出版的經典著作《Agile Software Development Principles Patterns and Practices》 中提到的,它由兩條構成:A。High level modules should not depend

OOD設計原則之介面分隔原則(ISP)

 介面隔離原則(Interface Segregation Principle)是Robert C. Martin(!)在1996年為《C++ Reporter》所寫的專欄Engineering Notebook的第四篇(原文),這個原則說的是如何處理介面“臃腫”帶來的麻煩。這個原則概括起來只有一句話:Clients should not be forced to depend upon methods that they do not use.

OOD設計原則之迪米特法則(LoD)

迪米特法則(Law of Demeter, LoD)又叫最少知識原則(Least Knowledge Principle, LKP)。1987年秋天由美國Northeastern University的Ian Holland提出,被UML的創始者之一Booch等普及。後來,因為在經典著作《 The Pragmatic Programmer》而廣為人知。 迪米特法則可以簡單說成:talk only to your immediate

OOD設計原則之合成/彙總複用原則(CARP)

 合成/彙總複用原則(Composite/Aggregate Reuse Principle, CARP)也可以簡稱為合成複用原則(Composite Reuse Principle,

OOD設計原則之其他

在物件導向大師Robert C. Martin的《Agile software development: Principles, Patterns and Practices》一書中,只把前面提到的OCP、LSP、SRP、DIP和ISP列為OOD的設計原則。確實,這幾個原則是物件導向設計中基石性的原則。在我看來,不能明了這些原則的本義,是根本談不到OOD的。而後面的LoD、CARP也被廣泛傳播,尤其是CARP因為《Desgin Pattern》的影響力而被普遍接受。在Martin的《Agile.

Hibernate的介紹 .

 1.什麼是Hibernate?          首先,Hibernate是資料持久層的一個輕量級架構。資料持久層的架構有很多比如:iBATIS,myBatis,Nhibernate,Siena等等。          並且Hibernate是一個開源的orm(object relations model)架構,提供了查詢擷取資料的方法,用物件導向的思想來操作資料庫,節省了我們開發處理資料的時間。2.那使用Hibernate的優點呢?         

準備開始寫設計模式了

設計模式(Design Patterns)相關的文章很多很多,csdn,部落格園,很多原創的或者轉載的。這樣看來,我是沒必要再來畫蛇添足的——這個說法不確切,那些蛇本來就不是我畫的,而是GoF,Cooper,還有許許多多的前輩。其實,我知道Design

“在驗證發生前無法調用 Page.IsValid”問題的由來

在ASP.Net中,為了方便表單的驗證,提供了驗證控制項來完成表單輸入資料的驗證。這些驗證控制項確實是功能強大,為寫表單程式提供了極大的便利。但是,在不熟悉的情況下,經常碰到問題。其中,最常見的是遇到錯誤:在驗證發生前無法調用

Factory 方法模式 Factory Method Pattern

一. Factory 方法模式簡介  在簡單原廠模式中,由一個工廠類(實際上是其中的某一個具體方法)負責決定執行個體化哪一個具體產品,從而接觸客戶和具體產品類直接的依賴關係。而Factory 方法模式對這種思想進行了進一步的擴充,把這個執行個體化產品的方法抽象化(從而也抽象化了這個工廠類),把執行個體化哪一個具體產品類的決策延遲到它的子類中去。也就是說,這個抽象方法只定義了應該建立一個什麼類(抽象),讓子類去決定建立哪一個對象。  GoF的《設計模式》中這樣描述Factory

抽象原廠模式 Abstract Factory Pattern

 一. 抽象原廠模式概述   抽象原廠模式是原廠模式中最一般、最抽象的一種表現形式,是對Factory 方法模式的進一步擴充。Factory 方法模式可以對一類產品的建造進行管理,將建造具體產品的建造過程交給到具體的子類中完成。如果需要管理兩類及以上產品的建造過程呢?當然很自然的就可以想到可以使用多個Factory

ResourceBundle中的中文亂碼問題

在Java中,處理中文亂碼一直是一個頭疼的問題。這個問題的是由於地區設定和字元集引起的,具體這裡不深究。我們都知道,在Java中,預設是使用latin1(iso8859-1)字元集的。我們處理中文的方式經常是這樣:以從資料庫中讀取中文為例:String sName=getName();String sName_cn=new String(sName.getBytes("ISO8859-1"),"GB2312");通過這種方式,中文就可以正常顯示了。但是,在很多使用Resource資源檔的情況下,

通過修改註冊表添加IE右鍵菜單

最近在開發一個項目的時候,希望在IE的右鍵菜單中添加快捷操作。因為暫時還來不及開發外掛程式,通過安裝程式添加IE右鍵菜單,因此想到的最簡單的方法就是修改註冊表。IE的右鍵菜單擴充位於註冊表[HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/MenuExt] 項下。在此建立一個新項,項的名稱就是出現在右鍵菜單中的標題,因此我建立了一個新項“在GoWords.cn搜尋”。這樣,在IE中點擊滑鼠右鍵的時候就會出現“在GoWords.cn搜尋”

SMTP Server reply:535 5.7.3 Authentication unsuccessful

是在伺服器重裝之後,配置郵件伺服器(imail)的時候遇到這個問題的。以前伺服器配置無數次,輕車熟路,怎麼這次忽然就發生這個問題了?單從提示來看,原因很明顯:SMTP驗證失敗。可是,Foxmail裡已經選了SMTP伺服器需要驗證選項呀?以前Foxmail有這個Bug,但是其他伺服器都正常,因此可以肯定,不是Foxmail的問題。那問題就只能出現在Imail伺服器了。試著關掉Imail-SMTP安全設定裡的“寄送著身分識別驗證”選項,仍是同樣的問題!這就有點不正常了!進一步使用Imail內建的用戶

網頁返回頂部

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html;

Java源碼解讀之util.ArrayList .

 ArrayList是List介面的一個可變長數組實現。實現了所有List介面的操作,並允許儲存null值。除了沒有進行同步,ArrayList基本等同於Vector。在Vector中幾乎對所有的方法都進行了同步,但ArrayList僅對writeObject和readObject進行了同步,其它比如add(Object)、remove(int)等都沒有同步。    1.儲存  ArrayList使用一個Object的數組儲存元素。private transient Object

自己寫的仿Log4j控制台列印記錄寫到檔案的工具類

編寫背景:           今天下午,在寫一個多線程的測試程式《讀者寫者-【寫者優先】》(該文章會在晚些的時候發出來)的時候,想看一下控制台的列印效果,但是你懂的,eclipse控制台只能儲存一部分的資料。配置log4j又有點大材小用。所以就自己寫了這個可以寫入本地檔案的工具類: 工具類實現的功能:1.按照[時間-調用類-調用方法-調用方法所在行號-message]的格式 斷行符號寫入檔案2.實現了每天一個記錄檔的功能閑話不說,上代碼: Write2File.javapackage com.

List轉換成String數組

Java代碼List<String> list = new ArrayList<String>();   list.add("a1");   list.add("a2");   String[] toBeStored = list.toArray(new String[list.size()]);   for(String s : toBeStored) {         System.out.println(s);    }   List<String>

總頁數: 61357 1 .... 14113 14114 14115 14116 14117 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.