java解耦
⑴ 在java中,什麼是完全解耦
盡最大程度的降低程序的耦合性可以是程序具備良好的擴展性,易於修改。版
較為具體的說明就是權有的時候程序需要修改,我只需要改正一部分,單是如果程序的耦合性很強的話就需要從頭再寫一遍很不劃算,而正常的開發中都是改那部分,重寫那部分,把配置文件一改就成了,java中通過介面(interface),spring技術中的ioc等實現的解耦合
⑵ 解耦是什麼意思
用數學方法將兩種運動分離開來處理問題,常用解耦方法就是忽略或簡化對所研究問題影響較小的一種運動,只分析主要的運動。
數學中解耦是指使含有多個變數的數學方程變成能夠用單個變數表示的方程組,即變數不再同時共同直接影響一個方程的結果,從而簡化分析計算 選擇適當的控制規律將一個多變數系統化為多個獨立的單變數系統的控制問題。
在解耦控制問題中,基本目標是設計一個控制裝置,使構成的多變數控制系統的每個輸出變數僅由一個輸入變數完全控制,且不同的輸出由不同的輸入控制。
(2)java解耦擴展閱讀:
完全解耦控制:對於輸出和輸入變數個數相同的系統,如果引入適當的控制規律,使控制系統的傳遞函數矩陣為非奇異對角矩陣,就稱系統實現了完全解耦。
靜態解耦控制:一個多變數系統在單位階躍函數(見過渡過程) 輸入作用下能通過引入控制裝置實現穩態解耦時,就稱實現了靜態解耦控。
軟體解耦:說起軟體的解耦必然需要談論耦合度,降低耦合度即可以理解為解耦,模塊間有依賴關系必然存在耦合,理論上的絕對零耦合是做不到的,但可以通過一些現有的方法將耦合度降至最低。
⑶ java 裡面的解耦是什麼意思
這是形象搞笑的比喻:完全可以這么想像嘛,有一對熱戀中的男女,水深火熱的,誰離開誰都不行了,離開就得死,要是對方有一點風吹草動,這一方就得地動山搖。可以按照瓊瑤阿姨的路子繼續想像,想成什麼樣都不過分,他們之間的這種狀態就應該叫做「偶合」。
他們這么下去,有人看不慣了,有一些掌握話語權的權利機構覺得有必要出面阻止了,這樣下去不是個事吖,你得先愛祖國,愛社會,愛人民,愛這大好河山才行啊,於是棒打鴛鴦,讓他們之間對對方的需要,抽象成一種生理需要,這就好辦了,把她抽象成女人,他抽象成男人,當他需要女人時,就把她當做女人送來,反之亦然,看上去他們仍在一起,沒什麼變化,實質上呢,他們已經被成功的拆散了,當有一天他需要女人時,來了另外一個女人,嘿嘿 他不會反對的。對方怎麼變他也不會關心了。這就是「解偶」。
較為具體的說明就是有的時候程序需要修改,我只需要改正一部分,單是如果程序的耦合性很強的話就需要從頭再寫一遍很不劃算,而正常的開發中都是改那部分,重寫那部分,把配置文件一改就成了,java中通過介面(interface),spring技術中的ioc等實現的解耦合
重寫覆蓋父類的方法也是一種解耦行為
⑷ java程序解耦合可以解到沒有耦合嗎
哈哈,怎麼叫沒有耦合?除非類之間沒有任何調用,無論經過多少層。
所謂的解耦是把原來引用很緊密的對象通過中間的一層進行分離,不直接引用,可能是只引用介面。這樣感覺起來因為不直接引用,所以修改起來就好辦多了。但實際上還是有引用的。
如果認為這種引用就是耦合的話,那麼不可能到沒有耦合。
⑸ 耦合是什麼意思java
您好:
耦合 指模塊與模塊之間的連接程度。耦合的強弱取決於模塊間介面的復雜性、調用模塊的方式以及通過界面傳送數據的多少。模塊間聯系越多,其耦合性越強,同時表明其獨立性越差( 降低耦合性,可以提高其獨立性)。
軟體設計中通常用耦合度和內聚度作為衡量模塊獨立程度的標准。劃分模塊的一個准則就是高內聚低耦合。
希望對你有幫助!
⑹ spring的ioc是解耦,aop是干什麼的
AOP面向切面編程
將程序中的交叉業務邏輯(比如安全,日誌,事務等),封裝成一個切面,然後注入到目標對象(具體業務邏輯)中去。
比如:
很多方法可能會拋異常,你要記錄這個異常到日誌中去,可以寫個攔截器類,在這個類中記錄日誌,在spring.xml中配置一個對這些要記錄日誌的方法的aop攔截器
在這個方法執行後調用這個攔截器,記錄日誌。這樣就不用每次拋異常都要手動記錄日誌。
spring的事務管理用到的就是aop
這樣也可以提高程序的內聚性。
⑺ java中的@是什麼
這是一個Annotation
Annotation介面的實現類: Documented, Inherited, Retention, Target 都是用來定義自己定義的Annotation類的。
1. 註解(Annotation)類,以@interface 修飾 ,不能顯示(explicit)extends或implements任何類
如:
java 代碼
public @interface DefineAnnotation {
}
這種沒有任何屬性的Annotation類,也叫標識Annotation
2. 定義屬性
java 代碼
//屬性必須加個小括弧
public String value() ;
//有默認值的屬性
public String value() default "aaa";
完整定義如下:
java 代碼
//註解Annotation類不能顯示(explicit)extends或implements任何類
//不定義任何屬性就叫maket annotation
public @interface DefineAnnotation {
//定義一個屬性,有屬性的話,必須賦值,除非有默認default
public String value() default "aaa";
}
3.使用Annotation,有默認值的可以不用傳參數,也可以傳遞參數。沒有默認值的,必須傳遞參數。
如:
java 代碼
public class TestAnnotation {
// @DefineAnnotation 有默認值的第一種使用方式
// @DefineAnnotation() 有默認值的第二種使用方式
@DefineAnnotation("ttitfly")
public void say(){
System.out.println("say hello");
}
public static void main(String[] args){
TestAnnotation ta = new TestAnnotation();
ta.say();
}
}
4. Retention (保存)
所有的Annotation類都實現了Annotation介面
@Retention本身就是個Annotation(註解)類
它的值是個enum枚舉類型的RetentionPolicy,該枚舉類型RetentionPolicy有三個值RUNTIME (會被JVM載入,並可以通過反射來獲得到Annotation類的信息) ,CLASS (不會被JVM載入),Source
@Retention的值標識自己定義的Annotation(註解)類 是屬於哪種保存策略,將來哪個類如果使用了這個自定義的註解類,將會使用這種保存策略
如:
java 代碼
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
//所有的Annotation類都實現了Annotation介面
//@Retention本身就是個Annotation(註解)類
//它的值是個enum枚舉類型的RetentionPolicy,該枚舉類型RetentionPolicy有三個值RUNTIME (會被JVM載入,並可以通過反射來獲得到Annotation類的信息) ,CLASS (不會被JVM載入),Source
//@Retention的值標識自己定義的Annotation(註解)類 是屬於哪種保存策略,將來哪個類如果使用了這個自定義的註解類,將會使用這種保存策略
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String hello() default "ttitfly";
String world();
}
java 代碼
//使用自己定義的Annotation類
public class MyTest {
//一個方法可以有多個註解類
@Deprecated
@MyAnnotation(hello="china",world="earth")
public void say(){
System.out.println("say hello");
}
}
java 代碼
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
⑻ Java:Executor號稱將任務的提交與執行解耦,從何看出來的呢
1、提交後,襲任務是放到一個Executor內部隊列中的,Executor從這個隊列中獲取任務並執行。也就是說,它們之間是非同步的關系。提交的成功或失敗,跟執行的成功或失敗,沒有關聯。
2、只要任務的對象是Runnable實現就行了,提交時並不涉及其他額外參數,沒有耦合情況。
⑼ 請用Java代碼示例如何使用抽象類或介面實現解耦
這個沒必要還來代碼示例了
定義一個介面,在你的程序中用實現該介面的任意類來實例化類,你都可以直接調用介面中的方法,這不就解耦了么
⑽ java編程思想完全解耦是什麼意思
解耦,就是將程序積木化
就像我們玩的積木一樣,各個積木可以組合在一起而形成內一個形狀,又可容以拆分,又可以替換,因為基本上 各個積木塊都是獨立的,只要他們之間的介面(形狀)匹配,就可以靈活地組合在一起。
當然,這是理想狀態。解耦是在逐漸達到這個理想狀態。
深度理解還是建議多看書,你可以在這里下載java學習書籍pdf