重構系列7.簡化函數調用

1.重新命名函數函數的名稱未能揭示函數的用途,修改函數名稱,讓名稱解釋函數用途,即函數用來幹什麼。 2.引入參數對象某些參數總是同時出現,以一個對象取代這些參數。 3.移除設值函數你的類中的某個欄位一旦被初始化後就不再改變,可以移除該欄位的設值函數,只在建構函式中對其初始化一次。 4.以工廠函數取代建構函式你希望在建立對象時不僅僅是對它做簡單的構建動作,可以考慮使用Factory

重構系列8.處理繼承關係

1.欄位上移兩個子類中擁有相同的欄位,可以把該欄位上移到父類中。 2.函數上移兩個子類中有相同的函數,可以把該函數上移到父類中。 3.建構函式本體上移你在各個子類中擁有一些建構函式,他們的本體代碼幾乎完全一致,可以把建構函式本體上移到父類中。 4.欄位和函數下移某個欄位或者函數只是某個子類特有的而不是公用的特性,可以把該欄位或者函數下移到需要它的子類中。 5.提煉父類兩個類有相似的特性,可以把相似的特性提煉出來,並為他們建立一個父類。 6.構造模版函數你有一些子類,其中某些函數以相同的順序執行類

The Class Loader Architecture

One of the central tenets of Java is making code truly mobile. Every mobile code system requires the ability to load code from outside a system into the system dynamically. In Java, code is loaded (either from the disk or over the network) by a

詳解rsync演算法–如何減少同步檔案時的網路傳輸量

先看中的情境,用戶端A和B,以及伺服器server都儲存了同一個檔案,最初,A、B和server上的檔案內容都是相同的(記為File.1)。某一時刻,B修改了檔案內容,上傳到SERVER上(記為File.2)。用戶端A這時試圖向伺服器SERVER更新檔案到最新內容,也就是File.1更新為File.2。上面這個情境很常見,例如現在流行的網盤。假設我有一個檔案a.txt在網盤上,上班時在公司的單位PC上更新了檔案a.txt,下班後回到家裡,家裡PC硬碟上的a.txt就不是最新的內容,這時網盤就試圖

可變類與不可變類(1)

1.  可變類和不可變類(Mutable and Immutable Objects)的初步定義:      可變類:當你獲得這個類的一個執行個體引用時,你可以改變這個執行個體的內容。      不可變類:當你獲得這個類的一個執行個體引用時,你不可以改變這個執行個體的內容。不可變類的執行個體一但建立,其內在成員變數的值就不能被修改。2. 如何建立一個自己的不可變類:      .所有成員都是private      .不提供對成員的改變方法,例如:setXXXX     

不可變類的緩衝

不可變類的執行個體的狀態不會變化,這樣的執行個體可以安全地被其他與之關聯的對象共用,還可以安全地被多個線程共用。為了節省記憶體空間,最佳化程式的效能,應該儘可能地重用不可變類的執行個體,避免重複建立具有相同屬性值的不可變類的執行個體。在JDK  1.5的基本類庫中,對一些不可變類,如Integer類做了最佳化,它具有一個執行個體緩衝,用來存放程式中經常使用的Integer執行個體。JDK  1.5的Integer類新增了一個參數,為int類型的靜態Factory 方法valueOf(int 

About PGA_AGGREGATE_TARGET parameter

In order to make you understand About PGA_AGGREGATE_TARGET parameter let's have a look at parameter *_AREA_SIZE.SQL> SHOW PARAMETER _AREA_SIZENAME TYPE VALUE------------------------------------ -----------

Managing Tables: Logging versus Nologging

When creating large tables (large referring to the amount of data), you may want to consider creating them with the nologging option. If the data is of a transient nature, that is, the table is used for staging and other manipulation will transform

一致性雜湊演算法(Consistent Hashing)

consistent hashing 演算法早在 1997 年就在論文 Consistent hashing and random trees 中被提出,目前在 cache 系統中應用越來越廣泛;1 基本情境比如你有 N 個 cache 伺服器(後面簡稱 cache ),那麼如何將一個對象 object 映射到 N 個 cache 上呢,你很可能會採用類似下面的通用方法計算 object 的 hash 值,然後均勻的映射到到 N 個 cache

instance_name,ORACLE_SID和service_name之間的關係

db_name - 當你執行“create database”命令時被建立,可以從v$database視圖中查詢。SQL> CREATE DATABASE mysid DATAFILE SIZE 400M2> DEFAULT TEMPORARY TABLESPACE temp_ts3> TEMPFILE SIZE 10M4> UNDO TABLESPACE undo_ts DATAFILE SIZE 10M;select name,

微機原理概述

1.什麼是微電腦機??由於明確定義微電腦的定義比較困難,我們一般把台式電腦一類的個人電腦、結構相對簡單的工業控制電腦等等統稱為微電腦2.微機原理這門學科是研究什麼的??我們主要討論微型處理器,微電腦和微電腦系統..(1)微處理器(CPU)是微電腦控制和處理的核心。,微處理器的組成主要有個三部分: 算術邏輯組件ALU,執行算術運算和邏輯操作。 控制組件,產生一定的時序,控制指令所規定的操作的執行。 寄存器,用於存放指令、運算元和中間結果等。   這三個部分通過微處理器的內部匯流排相連。  (2).

雜湊鏈表實現的LRU緩衝演算法

在做三角網格檔案轉換的時候需要對從檔案中讀取的頂點座標進行緩衝,於是索性做了一個雜湊緩衝以提高訪問效率,同時以LRU原則在緩衝滿的情況下清楚緩衝中的單元。在hash表中我用了最簡單的取摸的方法,由於原頂點有一個索引而且這種索引連續,所以取摸的方法已經可以達到平均散列。在處理碰撞的時候我使用了鏈表,而所有在緩衝中的單元都按放入緩衝的時間串成一個鏈表,這樣在清除單元的時候選擇隊尾的元素進行清除即可。/* manipulations for the vertex binary file

重構系列6.簡化條件運算式

1.分解條件式你有一個複雜的條件陳述式,可以考慮用函數代替條件邏輯。 2.合并條件式你有一系列的條件測試,他們都要執行相同的操作,可以將這些條件式合并到一個函數中。 3.合并複雜的條件片段在條件式的每個分支上有一段相同的代碼,將這段代碼搬移到條件式之外。 4.用return語句取代嵌套條件式函數中的條件邏輯使人難以看清正常的執行路徑,可以考慮在條件判斷後面使用return語句簡化條件邏輯。 5.用多態取代條件式對於複雜的if-else語句或者switch語句,可以考慮用多態替換它。 

資料庫之關係代數(理論部分)

1.關係代數簡介關係代數是一種抽象的查詢語言,是關係資料操縱語言的一種傳統表達方式,它是用對關係的運算來表達查詢的。關係代數的運算對象是關係,運算結果亦為關係2.關係代數的運算(1).集合運算集合運算一般是從行的角度上進行運算,常見集合的運算:並(Union)定義:設關係R和關係S具有相同數目的列n(即兩個關係都有n個屬性),且相應的屬性取自同一個域,則關係R與關係S的並由屬於R或屬於S的元組組成。其結果關係仍為n目關係。記作:R∪ S ={t | t∈R ∨

Memcached 叢集架構方面的問題

Memcached 叢集架構方面的問題  這裡收集了經常被問到的關於memcached的問題memcached是怎麼工作的?memcached最大的優勢是什嗎?memcached和MySQL的query cache相比,有什麼優缺點?memcached和伺服器的local

物件導向的設計原則一 開放-關閉原則

動機一個設計良好的應用程式應該充分考慮到開發和維護階段需求的頻繁變化,通常情況下,添加一個新的功能需要做出很多修改,我們應該使對已有代碼的修改最小化,因為他們已經經過了測試。對現有代碼做出修改將會以一種不可預料的方式影響它們的已有功能。 開放-關閉原則 (以下簡稱開閉原則)開-閉原則: 一個軟體實體應該對擴充開發,對修改關閉。

ORA-01555 Snapshot Too Old

From the docs we see that the ORA-01555 error relates to insufficient undo storage:ORA-01555:snapshot too old: rollback segment number string with name "string" too smallCause:Rollback records needed by a reader for consistent read are overwritten

翻譯是個苦差事

只是簡單的翻譯了幾篇文章,就充分體會到了翻譯之苦,對那些能夠把電腦英文原著翻譯得很好的譯者不禁肅然起敬。要想把一本書翻譯好確實需要下一番苦功夫,如果你隨便翻譯了一篇文章,大家可能還是可以勉強看的下去。但是如果你把一本書翻譯的很爛,可能就會毒害一群熱愛技術的讀者。既然下決心翻譯一本書,還是要盡最大努力把它翻譯好。不然的話,一方面可能會壞了原作者的名聲,一般原著都是寫的比較好的,甚至是一些經典之作,要不然也就沒有翻譯的價值了。另一方面,也會給讀者留下不好的印象,甚至誤導了讀者或者打消了他們學習技術的

Rolling Back Layers of Automatic Undo Management

By Steve CallanProbably the number one database administration headache in pre-9i versions of Oracle concerns the "ORA-01555 snapshot too old" error. Let's move forward to Oracle 10g and configure a database to use automatic undo management (AUM).

物件導向的設計原則二-單一職責原則

動機在本文中職責是指引起變化的原因。該原則表明,如果你有多個原因去改變一個類,那麼應該把這些引起變化的原因分離開,把這個類分成多個類,每個類只負責處理一種改變。當你做出某種改變時,只需要修改負責處理該改變的類。當我們去改變一個具有多個職責的類時可能會影響該類的其他功能。 單一職責原則一個類應該只受一種變化的影響。 單一職責原則簡單而直觀,但是在實際實現中可能是很困難的。 執行個體假設我們需要一個對象儲存email資訊,在下面的例子中我們將使用IEMAIL介面。初看起來,一切都很好。但是仔細分析我

總頁數: 61357 1 .... 18501 18502 18503 18504 18505 .... 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.