真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java設(shè)計(jì)模式面試題有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹了Java設(shè)計(jì)模式面試題有哪些,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、網(wǎng)站建設(shè)與策劃設(shè)計(jì),沁源網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:沁源等地區(qū)。沁源做網(wǎng)站價(jià)格咨詢:18982081108

1:什么是設(shè)計(jì)模式?

就是經(jīng)過(guò)實(shí)踐驗(yàn)證的用來(lái)解決特定環(huán)境下特定問(wèn)題的解決方案

2:設(shè)計(jì)模式用來(lái)干什么?

尋找合適的對(duì)象

決定對(duì)象的粒度 

指定對(duì)象的接口

描述對(duì)象的實(shí)現(xiàn)

運(yùn)用復(fù)用機(jī)制

重復(fù)使用經(jīng)過(guò)實(shí)踐驗(yàn)證的正確的,用來(lái)解決某一類問(wèn)題的解決方案來(lái)達(dá)到減少

工作量、提高正確率等目的。

3:什么是對(duì)象粒度

    對(duì)象中方法的多少就是粒度

4:基本的Java編程設(shè)計(jì)應(yīng)遵循的規(guī)則?

  面向接口編程,優(yōu)先使用對(duì)象組合

5:設(shè)計(jì)模式的應(yīng)用范圍

  所能解決的特定的一類問(wèn)題中

6:簡(jiǎn)述什么是單例模式,以及他解決的問(wèn)題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì)?

在任何時(shí)間內(nèi)只有一個(gè)類實(shí)例存在的模式。

需要有一個(gè)從中進(jìn)行全局訪問(wèn)和維護(hù)某種類型數(shù)據(jù)的區(qū)域的環(huán)境下使用單例模式。

解決方案就是保證一個(gè)類只有一個(gè)類實(shí)例存在。

本質(zhì)就是實(shí)例共用同一塊內(nèi)存區(qū)域。

7:代碼示例:?jiǎn)卫J降膬煞N實(shí)現(xiàn)方法,并說(shuō)明優(yōu)缺點(diǎn)

public class Test{
 
     public Test(){
 
    }
 
private static Test test = new Test();
 
     public static Test getInstance(){
 
     return test;
 
}
 
    }
public class Test{
 
     private static Test test = null;
 
    private Test(){
 
}
 
    public static Test getInstance(){
 
   if(test==null){
 
  test = new Test();
 
}
 
   return test;
 
}
 
}

第二種方式不需每次都創(chuàng)建一個(gè)類實(shí)例,而只是在第一次創(chuàng)建

8:簡(jiǎn)述什么是工廠模式,以及他解決的問(wèn)題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì)

利用工廠來(lái)解決接口選擇的問(wèn)題的模式。

應(yīng)用環(huán)境:當(dāng)一個(gè)類無(wú)法預(yù)料要?jiǎng)?chuàng)建哪種類的對(duì)象或是一個(gè)類需要由子類來(lái)指定創(chuàng)建的對(duì)象時(shí),就需要用到工廠模式。

解決方案:定義一個(gè)創(chuàng)建對(duì)象的接口,讓子類來(lái)決定具體實(shí)例化哪一個(gè)類。

本質(zhì)就是根據(jù)不同的情況來(lái)選擇不同的接口。

9:代碼示例:工廠模式的實(shí)現(xiàn)方法

public class Factory{
 
     public static Sample creator(int which){
 
     if (which==1){
 
     return new SampleA();
 
}else if (which==2)
 
       return new SampleB();
 
     }
 
    }
 
    }
 
     Public class MyFactory{
 
        Public static myFactory f = null;
 
        Public MyFactory(){
 
        }
 
        Public static MyFactory getInstance(){
 
           If(f==null){
 
              F=new MyFactory();
 
           }
 
        }
 
        Public DBDAO getDAO(){
 
            Return new DBDAOImpl();
 
        }  
 
    }
10:述什么是值對(duì)象模式,以及他解決的問(wèn)題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì)

用來(lái)把一組數(shù)據(jù)封裝成一個(gè)對(duì)象的模式。

解決問(wèn)題:在遠(yuǎn)程方法的調(diào)用次數(shù)增加的時(shí)候,相關(guān)的應(yīng)用程序性能將會(huì)有很大的下降。

解決方案:使用值對(duì)象的時(shí)候,可以通過(guò)僅僅一次方法調(diào)用來(lái)取得整個(gè)對(duì)象,而不是使用多次方法調(diào)用以得到對(duì)象中每個(gè)域的數(shù)值。

本質(zhì):就是把需要傳遞的多個(gè)值封裝成一個(gè)對(duì)象一次性傳過(guò)去。

11:代碼示例:值對(duì)象模式的實(shí)現(xiàn)方法

public class UserModel{
 
     private String userId;
 
    private String userName;
 
public void setUserId(String id){
 
     this.userId = id;
 
    }
 
    public String getUserId(){
 
    return userId;
 
    }
 
    public void setUserName(String name){
 
   this.userName = name;
 
}
 
public String getUserName(){
 
      return userName;
 
    }
 
    }
12:簡(jiǎn)述什么是DAO模式,以及他解決的問(wèn)題,應(yīng)用的環(huán)境,解決的方案,模式的本質(zhì)

DAO:數(shù)據(jù)訪問(wèn)對(duì)象

解決問(wèn)題:根據(jù)數(shù)據(jù)源不同,數(shù)據(jù)訪問(wèn)也不同。根據(jù)存儲(chǔ)的類型(關(guān)系數(shù)據(jù)庫(kù)、面向?qū)ο髷?shù)據(jù)庫(kù)、純文件等)和供應(yīng)商實(shí)現(xiàn)不同,持久性存儲(chǔ)(如數(shù)據(jù)庫(kù))的訪問(wèn)差別也很大。如何對(duì)存儲(chǔ)層以外的模塊屏蔽這些復(fù)雜性,以提供統(tǒng)一的調(diào)用存儲(chǔ)實(shí)現(xiàn)。程序的分布式問(wèn)題。

解決方案:是將數(shù)據(jù)訪問(wèn)邏輯抽象為特殊的資源,也就是說(shuō)將系統(tǒng)資源的接口從其底層訪問(wèn)機(jī)制中隔離出來(lái);通過(guò)將數(shù)據(jù)訪問(wèn)的調(diào)用打包,數(shù)據(jù)訪問(wèn)對(duì)象可以促進(jìn)對(duì)于不同數(shù)據(jù)庫(kù)類型和模式的數(shù)據(jù)訪問(wèn)。

DAO的本質(zhì):就是一層屏蔽一種變化。

本質(zhì):分層,是系統(tǒng)組件和數(shù)據(jù)源中間的適配器。(一層屏蔽一種變化)

13:代碼示例:DAO模式的實(shí)現(xiàn)方法

public interface CustomerDAO {
 
public int insertCustomer(...);
 
public Collection selectCustomersVO(...);
 
}
14:什么是開(kāi)放-封閉法則(OCP)

可擴(kuò)展但是不可以更改已有的模塊

   對(duì)擴(kuò)展是開(kāi)放的 對(duì)修改是封閉

15:什么是替換法則(LSP)

使用指向基類(超類)的引用的函數(shù),必須能夠在不知道具體派生類(子類)對(duì)象

類型的情況下使用

16:如何綜合使用我們學(xué)過(guò)的設(shè)計(jì)模式來(lái)構(gòu)建合理的應(yīng)用程序結(jié)構(gòu)

是采用接口進(jìn)行隔離,然后同時(shí)暴露值對(duì)象和工廠類,如果是需要數(shù)據(jù)存儲(chǔ)的功能,又會(huì)通過(guò)DAO 模式去與數(shù)據(jù)存儲(chǔ)層交互。

17:構(gòu)建常用的合理的Java應(yīng)用包結(jié)構(gòu)

Ui(表現(xiàn)層)

business--factory,ebi,ebo

dao--factory,dao,impl

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Java設(shè)計(jì)模式面試題有哪些”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!


當(dāng)前題目:Java設(shè)計(jì)模式面試題有哪些-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://weahome.cn/article/dhpecj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部