這篇文章主要介紹“Java迪米特原則怎么實現(xiàn)”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java迪米特原則怎么實現(xiàn)”文章能幫助大家解決問題。
創(chuàng)新互聯(lián)服務(wù)項目包括渾南網(wǎng)站建設(shè)、渾南網(wǎng)站制作、渾南網(wǎng)頁制作以及渾南網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,渾南網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到渾南省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
迪米特原則(Law of Demeter)又叫最少知道原則(Least Knowledge Principle),可以簡單說成:talk only to your immediate friends,只與你直接的朋友們通信,不要跟“陌生人”說話。
迪米特法則,如果兩個類不必彼此直接通向,那么這兩個類就不應(yīng)當(dāng)發(fā)生直接的相互作用。如果其中一個類需要調(diào)用另一個累哦的某一個方法的話,可以通過第三者轉(zhuǎn)發(fā)這個調(diào)用。
迪米特法則首先強調(diào)的前提是在類的結(jié)構(gòu)設(shè)計上,每一個類都應(yīng)當(dāng)降低成員的訪問權(quán)限,也就是說,一個類包裝好自己的private狀態(tài),不需要讓別的類知道的字段或行為就不要公開。
面向?qū)ο蟮脑O(shè)計原則和面向?qū)ο蟮娜筇匦员揪筒皇敲艿摹5厦滋胤▌t其根本思想,是強調(diào)了類之間的松耦合。類之間的耦合越弱,越有利于復(fù)用,一個處在弱耦合的類被修改,不會對有關(guān)系的類造成搏擊,也就是說,信息的隱藏促進了軟件的復(fù)用。
減少對象之間的耦合性
在類的劃分上,應(yīng)該創(chuàng)建弱耦合的類。類與類之間的耦合越弱,就越有利于實現(xiàn)可復(fù)用的目標(biāo)。
在類的結(jié)構(gòu)設(shè)計上,盡量降低類成員的訪問權(quán)限。
在類的設(shè)計上,優(yōu)先考慮將一個類設(shè)置成不變類。
在對其他類的引用上,將引用其他對象的次數(shù)降到最低。
不暴露類的屬性成員,而應(yīng)該提供相應(yīng)的訪問器(set 和 get 方法)。
謹慎使用序列化(Serializable)功能
明星與經(jīng)紀(jì)人的關(guān)系實例
分析:明星由于全身心投入藝術(shù),所以許多日常事務(wù)由經(jīng)紀(jì)人負責(zé)處理,如與粉絲的見面會,與媒體公司的業(yè)務(wù)洽淡等。這里的經(jīng)紀(jì)人是明星的朋友,而粉絲和媒體公司是陌生人,所以適合使用迪米特法則
public class LoDtest
{
public static void main(String[] args)
{
Agent agent=new Agent();
agent.setStar(new Star("科比"));
agent.setFans(new Fans("閏土"));
agent.setCompany(new Company("中國傳媒有限公司"));
agent.meeting();
agent.business();
}
}
//經(jīng)紀(jì)人
class Agent
{
private Star myStar;
private Fans myFans;
private Company myCompany;
public void setStar(Star myStar)
{
this.myStar=myStar;
}
public void setFans(Fans myFans)
{
this.myFans=myFans;
}
public void setCompany(Company myCompany)
{
this.myCompany=myCompany;
}
public void meeting()
{
System.out.println(myFans.getName()+"與明星"+myStar.getName()+"見面了。");
}
public void business()
{
System.out.println(myCompany.getName()+"與明星"+myStar.getName()+"洽淡業(yè)務(wù)。");
}
}
//明星
class Star
{
private String name;
Star(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
}
//粉絲
class Fans
{
private String name;
Fans(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
}
//媒體公司
class Company
{
private String name;
Company(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
}
關(guān)于“Java迪米特原則怎么實現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。