999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談Java程序中對象解耦的方式

2019-09-10 07:22:44劉翠霞
科學導報·科學工程與電力 2019年38期

【摘? 要】對象之間的耦合度就是對象之間的依賴性。對象之間的耦合度越高,表明對象獨立性越差,維護成本就越高。因此在面向對象的軟件開發中應盡量降低對象的耦合度,即解耦。在Java中可以使用接口、工廠模式、Spring框架等來降低對象間的耦合度。

【關鍵詞】耦合;解耦;工廠模式;Spring框架

一、Java對象的耦合性

對象的耦合性即對象的依賴性。在一個對象的工作過程中,需要使用另一個對象,則稱之為依賴另一個對象。使用傳統的new關鍵字創建對象會造成對象之間較高的依賴性。例如:

public class UserJDBCDao{

public void login(){……}

}

public class UserLoginServlet{

public UserJDBCDao? userDao=new UserJDBCDao();

public void doPost(){

userDao.login();

}

}

在以上代碼中,UserLoginServlet依賴于UserJDBCDao,如果UserJDBCDao使用的技術需要更換,則可能創建新的UserMyBatisDao來替換原有的UserJDBCDao,則以上代碼中UserJDBCDao就需要被替換為UserMyBatisDao。如果項目中有多個Servlet組件都使用了UserJDBCDao,則需要替換多次需要調整的代碼可能比較多,通常稱之為“耦合度太高”。

二、使用接口解耦

為了降低以上程序的耦合度,可以使用接口技術。即創建如下接口:

public interface UserDao{

void login();

}

然后,使得UserJDBCDao和UserMyBatisDao兩個類都實現以上接口,則后續需要使用Dao對象時,可以聲明為:

public userDao=new UserJDBCDao();

則后續需要替換時,該對象的聲明語句不用調整,只替換等號右側構造方法名字即可,一定程度上降低了對象間的耦合度。

三、使用工廠模式解耦

可以使用設計模式中的工廠模式降低耦合度??梢詣摻ㄈ缦碌墓S類:

public class UserDaoFactory{

public static UserDao newInstance(){

return new UserJDBCDao();

}

}

則此前的代碼可以進一步調整為:

public UserDao userDao=UserDaoFactory.newInstance();

以上代碼中根本就沒有出現某個實現類的名稱,如果需要替換實現類,以上代碼根本就不需要調整。需要調整的只有工廠類中的方法的返回值,而工廠類的修改只需要一次即可??梢苑Q之為“UserLoginServlet不依賴于UserJdbcDao或UserMyBatisDao”,也就解除了三者之間的耦合。

四、使用Spring框架解耦

可以將Spring框架理解為一個大型工廠,專門用于創建和管理項目中所需要的類的對象。當需要使用某個對象時,從Spring框架中獲取即可。使用Spring的關鍵步驟有三步:

(一)導包

在pom.xml文件在pom.xml中添加org.springframework的spring-webmvc依賴進行導包。代碼如下:

<dependency>

<groupId>org.springframeword</groupId>

<artifactId>spring-webmvc</artifactId>

<version>4.3.8.RELEASE</version>

</dependency>

(二)配置Spring

假設需要通過Spring創建Date類的對象,則在Spring配置文件(默認文件名是applicationContext.xml)中添加如下配置:

<bean id="date" class="java.util.Date"></bean>

其中:

1.bean元素:使用該元素描述需要Spring容器管理的對象。

2.id屬性:給被管理的對象起個名字,后續可使用getBean("id值")獲取該對象。

3.class屬性:被管理對象的完整類名。

(三)通過Spring獲取對象

1.加載Spring配置文件,獲得Spring容器

ClassPathXmlApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");

2.從spring容器中獲取對象

Date date=(Date)ac.getBean("date");

“高內聚、低耦合”是每個程序員追求的目標,隨著編程技術的發展,必將有更多更好的方法來降低程序耦合性,程序解耦方法的研究還需要不斷深入。

參考文獻:

[1]肖睿,肖靜,董寧.SSM輕量級框架應用實戰[M].北京:人民郵電出版社,2018.

[2]CSDN博客.程序的耦合和解耦思路 [EB/OL].https://blog.csdn.net/qq_40867650/article/details/102825262,2019-10-30.

作者簡介:

劉翠霞,女,中共黨員,信息學院軟件教研室主任,高級工程師,工程碩士。研究方向:高職教育,軟件開發。在研課題《“互聯網+”背景下高職課堂革命的探究與實踐》。

(作者單位:石家莊財經職業學院)

主站蜘蛛池模板: аv天堂最新中文在线| 免费人成又黄又爽的视频网站| 亚洲久悠悠色悠在线播放| 亚洲色无码专线精品观看| 国产青青草视频| 亚洲欧洲日韩综合色天使| 人人91人人澡人人妻人人爽 | 97国产精品视频自在拍| 好紧太爽了视频免费无码| 国产白浆视频| 伊人大杳蕉中文无码| 国产亚洲高清视频| 日韩小视频在线观看| a网站在线观看| 国产男女XX00免费观看| 无码久看视频| 久久永久免费人妻精品| 99激情网| 在线国产你懂的| 超碰色了色| 国产99视频免费精品是看6| 99激情网| 澳门av无码| 国产在线自揄拍揄视频网站| 国产欧美精品一区二区| 国产精品香蕉在线观看不卡| 国产成人成人一区二区| 东京热一区二区三区无码视频| 激情综合激情| 国产一级在线播放| 国产精品护士| 四虎AV麻豆| 国产精品极品美女自在线看免费一区二区| 亚洲精品天堂自在久久77| 亚洲视频欧美不卡| 色综合成人| 国产精品黑色丝袜的老师| 人妻一区二区三区无码精品一区 | 久久久久国色AV免费观看性色| 国产中文一区二区苍井空| yjizz视频最新网站在线| 国产成人做受免费视频| 国内视频精品| 无码专区在线观看| 欧美 亚洲 日韩 国产| 国产激情无码一区二区免费| a天堂视频| 男人天堂伊人网| 午夜人性色福利无码视频在线观看| 国产交换配偶在线视频| 国产精品亚洲а∨天堂免下载| 中文字幕 91| 欧美日本激情| 国产精品手机在线观看你懂的| 亚洲第一成人在线| 久久99国产乱子伦精品免| 日韩区欧美区| 欧美综合区自拍亚洲综合绿色| 亚洲国产91人成在线| 国产精品美人久久久久久AV| 久久香蕉国产线看观看精品蕉| 中文无码影院| 精品伊人久久大香线蕉网站| 99久久无色码中文字幕| 国产精彩视频在线观看| 亚洲日韩Av中文字幕无码| 欧美国产日韩在线| 91九色最新地址| 精品午夜国产福利观看| 无码福利日韩神码福利片| 国产性精品| 亚洲不卡网| 91精品啪在线观看国产| 特级aaaaaaaaa毛片免费视频| 亚洲乱伦视频| 日本国产精品| 精品国产免费观看| 奇米影视狠狠精品7777| 国产乱论视频| 都市激情亚洲综合久久| 日本欧美成人免费| 人妻精品久久久无码区色视|