成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

設(shè)計(jì)模式面試題解背誦版

開(kāi)發(fā) 前端
簡(jiǎn)單工廠模式指由一個(gè)工廠對(duì)象來(lái)創(chuàng)建實(shí)例,適用于工廠類(lèi)負(fù)責(zé)創(chuàng)建對(duì)象較少的情況。例子:Spring 中的 BeanFactory 使用簡(jiǎn)單工廠模式,產(chǎn)生 Bean 對(duì)象。

 [[395287]]

簡(jiǎn)述設(shè)計(jì)模式七大原則

開(kāi)放封閉原則:對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。在程序需要進(jìn)行拓展的時(shí)候,不能人為去修改原有的代碼,實(shí)現(xiàn)一個(gè)熱插拔的效果。

單一職責(zé)原則:一個(gè)類(lèi)、接口或方法只負(fù)責(zé)一個(gè)職責(zé),這樣可以降低代碼復(fù)雜度以及減少代碼變更引起的風(fēng)險(xiǎn)。

依賴(lài)倒置原則:針對(duì)接口編程,編程依賴(lài)于抽象類(lèi)或接口而不依賴(lài)于具體實(shí)現(xiàn)類(lèi)。

接口隔離原則:將不同功能定義在不同接口中來(lái)實(shí)現(xiàn)接口隔離。

里氏替換原則:任何基類(lèi)可以出現(xiàn)的地方,子類(lèi)一定可以出現(xiàn)。

迪米特原則:每個(gè)模塊對(duì)其他模塊都要盡可能少地了解和依賴(lài),降低代碼耦合度。

合成復(fù)用原則:盡量使用組合( has-a )/聚合( contains-a )而不是繼承( is-a )達(dá)到軟件復(fù)用的目的。

簡(jiǎn)述設(shè)計(jì)模式的分類(lèi)

創(chuàng)建型模式:在創(chuàng)建對(duì)象的同時(shí)隱藏創(chuàng)建邏輯,不使用 new 直接實(shí)例化對(duì)象。該模式包含工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結(jié)構(gòu)型模式:通過(guò)類(lèi)和接口間的繼承和引用實(shí)現(xiàn)創(chuàng)建復(fù)雜結(jié)構(gòu)的對(duì)象。該模式包含適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式:通過(guò)類(lèi)之間不同通信方式實(shí)現(xiàn)不同行為。該模式包含策略模式、模板方法模式、觀察者模式、迭代子模式、責(zé)任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問(wèn)者模式、中介者模式、解釋器模式。

簡(jiǎn)述簡(jiǎn)單工廠模式

簡(jiǎn)單工廠模式指由一個(gè)工廠對(duì)象來(lái)創(chuàng)建實(shí)例,適用于工廠類(lèi)負(fù)責(zé)創(chuàng)建對(duì)象較少的情況。例子:Spring 中的 BeanFactory 使用簡(jiǎn)單工廠模式,產(chǎn)生 Bean 對(duì)象。

簡(jiǎn)述工廠模式

工廠方法模式指定義一個(gè)創(chuàng)建對(duì)象的接口,讓接口的實(shí)現(xiàn)類(lèi)決定創(chuàng)建哪種對(duì)象,讓類(lèi)的實(shí)例化推遲到子類(lèi)中進(jìn)行。例子:Spring 的 FactoryBean 接口的 getObject 方法也是工廠方法。

簡(jiǎn)述抽象工廠模式

抽象工廠模式指提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴(lài)對(duì)象的接口,無(wú)需指定它們的具體類(lèi)。例子:java.sql.Connection 接口。

簡(jiǎn)述單例模式

一個(gè)單例類(lèi)在任何情況下都只存在一個(gè)實(shí)例。

餓漢式實(shí)現(xiàn)

  1. public class Singleton { 
  2.     private Singleton(){} 
  3.     private static Singleton instance  
  4.         = new Singleton(); 
  5.   
  6.     public static Singleton getInstance() { 
  7.         return instance; 
  8.     } 

懶漢式實(shí)現(xiàn)

  1. public class Singleton { 
  2.     private DoubleCheckSingleton(){} 
  3.     private volatile static  
  4.     Singleton instance; 
  5.  
  6.     public static Singleton getInstance() { 
  7.         if(instance == null) { 
  8.             synchronized (Singleton.class) { 
  9.                 if (instance == null) { 
  10.                     instance = new Singleton(); 
  11.                 } 
  12.             } 
  13.         } 
  14.         return instance; 
  15.     } 

簡(jiǎn)述代理模式

代理模式為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。優(yōu)點(diǎn)是可以增強(qiáng)目標(biāo)對(duì)象的功能,降低代碼耦合度,擴(kuò)展性好。缺點(diǎn)是在客戶(hù)端和目標(biāo)對(duì)象之間增加代理對(duì)象會(huì)導(dǎo)致請(qǐng)求處理速度變慢,增加系統(tǒng)復(fù)雜度。

靜態(tài)代理:在程序運(yùn)行前就已經(jīng)存在代理類(lèi)的字節(jié)碼文件,代理類(lèi)和委托類(lèi)的關(guān)系在運(yùn)行前就確定了。

動(dòng)態(tài)代理:程序運(yùn)行期間動(dòng)態(tài)的生成代理,所以不存在代理類(lèi)的字節(jié)碼文件。代理類(lèi)和委托類(lèi)的關(guān)系是在程序運(yùn)行時(shí)確定。

簡(jiǎn)述適配器模式

適配器模式將一個(gè)接口轉(zhuǎn)換成客戶(hù)希望的另一個(gè)接口,使接口不兼容的那些類(lèi)可以一起工作。

簡(jiǎn)述模板模式

模板模式定義了一個(gè)操作中的算法的骨架,并將一些步驟延遲到子類(lèi),適用于抽取子類(lèi)重復(fù)代碼到公共父類(lèi)。可以封裝固定不變的部分,擴(kuò)展可變的部分。但每一個(gè)不同實(shí)現(xiàn)都需要一個(gè)子類(lèi)維護(hù),會(huì)增加類(lèi)的數(shù)量。

簡(jiǎn)述裝飾器模式

裝飾者模式可以動(dòng)態(tài)地給對(duì)象添加一些額外的屬性或行為,即需要修改原有的功能,但又不愿直接去修改原有的代碼時(shí),設(shè)計(jì)一個(gè)Decorator套在原有代碼外面。

簡(jiǎn)述觀察者模式

觀察者模式表示的是一種對(duì)象與對(duì)象之間具有依賴(lài)關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴(lài)于它的對(duì)象都得到通知并被自動(dòng)更新。

 

責(zé)任編輯:武曉燕 來(lái)源: 后端技術(shù)小牛說(shuō)
相關(guān)推薦

2024-11-28 08:33:16

JavaScrip事件循環(huán)this

2020-11-05 10:01:35

系統(tǒng)設(shè)計(jì)軟件

2020-06-04 14:40:40

面試題Vue前端

2021-05-31 07:58:59

Spring設(shè)計(jì)模式

2023-11-13 07:37:36

JS面試題線程

2011-03-24 13:27:37

SQL

2021-01-14 05:12:19

Http協(xié)議面試

2009-06-06 18:34:05

java面試題

2009-06-06 18:36:02

java面試題

2014-09-19 11:17:48

面試題

2015-09-02 09:32:56

java線程面試

2010-04-27 13:49:04

Oracle數(shù)據(jù)庫(kù)

2025-02-26 07:58:41

2018-03-08 18:40:47

Java百度面試題

2024-06-04 14:52:28

2023-07-14 08:12:21

計(jì)時(shí)器unsafecontext

2013-01-05 14:51:34

JavaScriptjQuery面試

2014-07-28 14:00:40

linux面試題

2009-06-16 14:03:16

Hibernate面試Hibernate面試

2013-05-29 10:23:36

Android開(kāi)發(fā)移動(dòng)開(kāi)發(fā)Java面試題
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91免费观看视频 | 亚洲三级在线观看 | 99久久精品免费看国产高清 | 在线免费看毛片 | wwwxxx国产 | 精品久久久999 | a免费观看 | 国产精品无码久久久久 | 成人精品一区 | 国产高清视频一区 | 91亚洲国产成人久久精品网站 | 国产精品久久久久久久免费大片 | 中文字幕在线免费观看 | 久久久久久久亚洲精品 | 久久小视频 | 国产清纯白嫩初高生视频在线观看 | 国产日韩欧美一区二区 | 国产精品国产精品国产专区不片 | 久久天堂网 | 国产激情精品 | 久久久精彩视频 | 精品亚洲91 | 免费a v网站 | 一区二区三区四区在线视频 | 免费黄色片视频 | 国产网站在线免费观看 | 欧美午夜精品 | 欧美国产日韩一区二区三区 | 色欧美综合 | 一区二区视频 | 久久噜噜噜精品国产亚洲综合 | 日韩一区二区三区精品 | 一二三四在线视频观看社区 | 成人精品一区二区三区 | 日韩精品在线播放 | 国产成人精品一区二区三 | 中文字幕高清 | 国产精品欧美一区二区三区 | 国产亚洲精品成人av久久ww | 中文字幕日韩欧美 | 欧美成人a∨高清免费观看 老司机午夜性大片 |