国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 莱州市| 十堰市| 巨野县| 九龙坡区| 嘉黎县| 丁青县| 轮台县| 惠水县| 武陟县| 启东市| 哈尔滨市| 咸丰县| 杨浦区| 滨海县| 桑植县| 靖西县| 信阳市| 临海市| 图木舒克市| 鲁山县| 安国市| 元阳县| 大名县| 建始县| 烟台市| 信阳市| 蓬莱市| 红桥区| 常州市| 大洼县| 台州市| 公主岭市| 北票市| 托克逊县| 苗栗市| 漳浦县| 西安市| 乡城县| 九龙县| 沙雅县| 南岸区|