国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

2、spring的松耦合示例

2019-11-08 03:08:08
字體:
供稿:網(wǎng)友

說明:在實際的開發(fā)項目中,一般都比較龐大,如果處理不當(dāng),會導(dǎo)致對象的依賴關(guān)系將一直緊密聯(lián)系在一起,并且難以修改或者管理。在這一種場景下,sPRing框架的優(yōu)勢便體現(xiàn)出來了—–松耦合。


例子1

說明:運用傳統(tǒng)方法輸出helloworld語句,主要代碼如下

OutputGenerator.java

public interface OutputGenerator { public void output();}

OutputGeneratorImpl.java 實現(xiàn)OutputGenerator接口

import com.main.model.OutputGenerator;public class OutputGeneratorImpl implements OutputGenerator{ public void output() { System.out.println("hello world"); }}

測試方法

@Test public void testOutputGenerator(){ OutputGeneratorImpl output = new OutputGeneratorImpl(); output.output(); }

輸出結(jié)果為 helloworld 缺點:用這種傳統(tǒng)的方式可以實現(xiàn)output方法輸出helloworld語句,但是OutputGenerator與OutputGeneratorImpl緊密地聯(lián)系在一起,假如OutputGenerator類需求有變化,則需要改動代碼的地方就會非常多


例子2

依然運用例子1中的OutputGenerator類和OutputGeneratorImpl類,并且再增加一個輔助類,用于輸出

OutputGeneratorService

import com.main.impl.OutputGeneratorImpl;import com.main.model.OutputGenerator;public class OutputGeneratorService { OutputGenerator outputGenerator; //default constructor public OutputGeneratorService(){ outputGenerator = new OutputGeneratorImpl(); } public void output(){ outputGenerator.output(); }}

測試方法

@Test public void testOutputGeneratorService(){ OutputGeneratorService service = new OutputGeneratorService(); service.output(); }

運行結(jié)果依然為:hello world 改進(jìn):增加一個輔助類來管理類的依賴關(guān)系,使得代碼的耦合程度不再那么緊密 存在問題:輸出的變化依然涉及一部分代碼的更改


例子3:運用spring的依賴注入(DI)

修改例子2的OutputGeneratorService

import com.main.impl.OutputGeneratorImpl;import com.main.model.OutputGenerator;public class OutputGeneratorService { OutputGenerator outputGenerator; //default constructor public OutputGeneratorService(){ } public void setOutputGenerator(OutputGenerator outputGenerator){ this.outputGenerator = outputGenerator; } public void output(){ outputGenerator.output(); }}

增加一個spring bean的配置文件,并且生命java 對象的依賴關(guān)系

<!-- beans.xml --><?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="OutputGeneratorService" class="com.main.service.OutputGeneratorService"> <property name="outputGenerator" ref="OutputGeneratorImpl"/> </bean> <bean id="OutputGeneratorImpl" class="com.main.impl.OutputGeneratorImpl"></bean></beans>

測試方法

@Test public void testSpringOutput(){ applicationContext context = new ClassPathXmlApplicationContext(new String[] {"beans.xml"}); OutputGeneratorService service =(OutputGeneratorService)context.getBean("OutputGeneratorService"); service.output(); }

輸出結(jié)果依然為hello world 改進(jìn)之處:現(xiàn)在只需要修改spring的配置文件即可實現(xiàn)不同的輸出,而不需要修改代碼


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 吴旗县| 台州市| 兴文县| 仪征市| 买车| 西城区| 衡东县| 张家口市| 太仓市| 双桥区| 西藏| 抚州市| 白玉县| 买车| 汶川县| 洪雅县| 延庆县| 兴文县| 蓝山县| 九台市| 台南县| 右玉县| 井研县| 扎鲁特旗| 扶沟县| 阿坝| 平顶山市| 肥东县| 永吉县| 台州市| 印江| 靖宇县| 宁波市| 临沂市| 枝江市| 苏尼特右旗| 普宁市| 鄂托克前旗| 广西| 洛宁县| 合阳县|