什麼是 AOP 和 OOP,IOC 和 DI 有什麼不同?
答:
1)面向物件程式設計(Object Oriented Programming,OOP,面向物件程式設計)是一種計算機程式設計架構。AOP 是 OOP 的延續,是 Aspect Oriented Programming 的縮寫,意思是面向方面程式設計。 將通用需求功能從不相關類之中分離出來;同時,能夠使得很多類共享一個行為,一旦行為發生變化,不必修改很多類,只要修改這個行為就可以。AOP 就是這種實現分散關注的程式設計方法,它將“關注”封裝在“方面”中
2)控制反轉 IOC(Inversion of Control) 控制指的就是程式相關類之間的依賴關係.傳統觀念設計中,
通常由呼叫者來建立被呼叫者的例項, 在 Spring 裡,建立被呼叫者的工作不再由呼叫者來完成,而是由 Spring 容器完成,依賴關係被反轉了,稱為控制反轉,目的是為了獲得更好的擴充套件性和良好的可維護性。依賴注入(Dependency injection)建立被呼叫者的工作由 Spring 容器完成,然後注入呼叫者,因此也稱依賴注入。控制反轉和依賴注入是同一個概念。
from:http://wiki.jikexueyuan.com/project/java-interview-bible/OOP.html
相關推薦
什麼是 AOP 和 OOP,IOC 和 DI 有什麼不同?
答: 1)面向物件程式設計(Object Oriented Programming,OOP,面向物件程式設計)是一種計算機程式設計架構。AOP 是 OOP 的延續,是 Aspect Oriented Programming 的縮寫,意思是面向方面程式設計。 將通用需求功能從不相關類之中分離出來;
有兩個字串str和substr,str和substr的字元個數不超過10^5,只包含大小寫字母和數字。(字元個數不包括字串結尾處的’\0’。)將substr插入到str中ASCII碼最大的那個字元
輸入格式只有一行: str substr java 程式碼: package jiegouSuanfa; import java.util.Scanner; public class InsertString { public static void
AOP--Filter使用,過濾器和攔截器的區別
AOP(Aspect-Oriented Programming,面向切面程式設計)是一種程式設計思想,並不是一種具體的實現,談到實現一般有Filter和代理模式兩種常見的使用方式,Spring中的AOP也是封裝代理模式完成的,可以說是OOP(Object-Oriented P
根據馬甲、應用商店、統計每天的註冊量,要求可以根據選擇馬甲和app,馬甲和appstrore和user_login不同表問題
統計 eat create group ror 一次 instr 發現 用戶登錄 這個馬甲屬於一個表,appStore另一張表,用戶登錄表,主要操作的就是這三個表。 我這裏的馬甲和app的id都與用戶登錄表中的channel對應,在channel存放的是majiaId +
mutex和CRITICAL_SECTION,互斥和臨界區
com 劃分 通用 私人定制 art ica fff ace enter 本文不沒有任何知識可講,只是帖上自己測試的結果。 想看底層原理的可以直接關閉。 不過對於急著要選方案的人,倒提供一些幫助。 先說一些無關緊要的廢話: =========================
匯編指令:ldr和str,ldm和stm的區別
但是 發生 作用 應該 rom article 升級 出棧 內容 (1)LDR:L表示LOAD,LOAD的含義應該理解為:Load from memory into register。下面這條語句就說明的很清楚: LDR R1, [R2] R1<
使用HTML DOM 來分配事件 —— onmouseover和onmouseout ,onmousedown和onmouseup
wid bsp this 謝謝 seo -c png 代碼 inner 一, onmouseover 和 onmouseout 事件 onmouseover 和 onmouseout 事件可用於在用戶的鼠標移至 HTML 元素上方或移出元素時觸發函數。 一個小例:鼠標未在上
equals和==區別 ,equals和hashcode區別
實例對象 getc @override prime post pos bool body .get “==” : 所比較的是基本數據類型,引用變量是否相等。 “equals”:兩個獨立對象的內容是否相等。例如字符串的比較用equals String a = new
fgets和fputs,fread和fwrite,fscanf,和fprintf用法小結
fwrite fgets eof IT 意義 遇到 其中 文件 之前 一、fgets(str,n,fp); fgets(str,n,fp);就是從fp指向的文件中讀取n-1個字符送入字符數組str中。 說明:1、在讀出n-1個字符之前,如果遇到了換行符或者EOF,則讀出結束
int和Integer,String和String(包裝類)
內存空間 mage image out info clas 技術 ima spa 1.int和Integer的值如果是一樣的,則是在內存中開辟相同的內存空間 2.但是String和String(包裝類)是不一樣的 代碼演示: int a=1;
char和nchar,varchar和nvarchar的區別
大小 多好 自動變 tex 其他 中文 個數 而不是 定義 1) 定義: char: 固定長度,存儲ANSI字符,不足的補英文半角空格。 nchar: 固定長度,存儲Unicode字符,不足的補英文半角空格 varchar: 可變長度,存儲AN
比拼生態和未來,Spark和Flink哪家強?
我們 成功 mapr 復用 tab 最簡 mapred 發的 北京 概 況 Spark 是最活躍的 Apache 項目之一。從 2014 年左右開始得到廣泛關註。Spark 的開源社區一度達到上千的活躍貢獻者。最主要推動者是 Databricks,由最初的 Spark 創造
JS的continue和break,陣列和函式
break:立即跳出整個迴圈,即迴圈結束,開始執行迴圈後面的內容(直接跳到大括號) continue:立即跳出當前迴圈,繼續下一次迴圈(跳到i++的地方) 陣列: 語法: var 陣列名=new Array(); var array=new Array();//定義了一個數組 陣
InputStream和Reader,FileInputStream和 FileReader的區別
一、InputStream和Reader的區別 InputStream和Reader都可以用來讀資料(從檔案中讀取資料或從Socket中讀取資料),最主要的區別如下: InputStream用來讀取二進位制數(位元組流),而 Reader用來讀取文字資料,即 Unicode字元
Legacy和UEFI,MBR和GPT的區別
Legacy和UEFI指的是系統引導方式(Legacy為傳統BIOS,UEFI為新式BIOS),MBR和GPT指的是磁碟分割槽表型別。 一般情況下都是Legacy+MBR, UEFI+GPT這兩種組合。但Legacy+GPT,UEFI+MBR也可以實現。 Legacy用的是8086彙編,UE
七、C#入門基礎07(屬性和方法,結構和類、建構函式)
一、類 定義一個類時,等於定義了一個數據型別的藍圖。 這實際上並沒有定義任何的資料,但它定義了類的名稱意味著什麼,也就是說,類的物件由什麼組成及在這個物件上可執行什麼操作。 物件是類的例項。構成類的方法和變數成為類的成員。 類的定義: 類的定義是以關鍵字 class 開始,後跟
Java中變數和常量,關鍵字和識別符號
Java語言基礎 識別符號的含義: 可以理解為有關名字,用來標識類名、變數名、方法名、陣列名、檔名的有序字元序列。 Java中的識別符號: 由任意的字母、下劃線、美元符號和數字組成,並且第一個字元不能是數字,識別符號不能是Java中的保留關鍵字。 注意:Java中嚴格區分
JNI 和 JNA,java和其他語言的互調
僅工作中使用到,現查現用,理解不到位,請持懷疑態度檢視本文。如有問題請聯絡郵件:[email protected]; 以便交流。 java呼叫C語言的方法: 1、JNI --- java native interface 2、JNA 3、runtime.exec() ,沒有研究
$_GET和$HTTP_GET_VARS,$_POST和$HTTP_POST_VARS之間的關係和相容問題
$_GET和$HTTP_GET_VARS,$_POST和$HTTP_POST_VARS之間的關係和相容問題 解決方法: 在PHP 4.1.0 版本之前,使用$HTTP_GET_VARS,$HTTP_POST_VARS; 在PHP 4.1.0
並行和併發,同步和非同步的區別
老是忘記併發和並行,同步和非同步之間的區別,今天寫篇部落格,加深印象。 併發 & 並行 併發:當有多個執行緒在操作時,如果系統只有一個CPU,則它根本不可能真正同時進行一個以上的執行緒,它只能把CPU執行時間劃分成若干個時間段,再將時間段分配給各個執行緒執行