JAVA基础知识总结8(设计模式)
設(shè)計模式:JAVA中有23種設(shè)計模式
1.解決問題最行之有效的思想。
2.是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié)。
3.使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。
?
1.單例設(shè)計模式:
解決的問題:保證一個類在內(nèi)存中的對象唯一性。
比如:多程序讀取一個配置文件時,建議配置文件封裝成對象。會方便操作其中數(shù)據(jù),又要保證多個程序讀到的是同一個配置文件對象,就需要該配置文件對象在內(nèi)存中是唯一的。
?
Runtime()方法就是單例設(shè)計模式進行設(shè)計的。
?
如何保證對象唯一性呢?
1,不讓其他程序創(chuàng)建該類對象。
2,在本類中創(chuàng)建一個本類對象。
3,對外提供方法,讓其他程序獲取這個對象。
?
步驟:
1,因為創(chuàng)建對象都需要構(gòu)造函數(shù)初始化,只要將本類中的構(gòu)造函數(shù)私有化,其他程序就無法再創(chuàng)建該類對象;
2,就在類中創(chuàng)建一個本類的對象;
3,定義一個方法,返回該對象,讓其他程序可以通過方法就得到本類對象。(作用:可控)
?
代碼體現(xiàn):
1,私有化構(gòu)造函數(shù);
2,創(chuàng)建私有并靜態(tài)的本類對象;
3,定義公有并靜態(tài)的方法,返回該對象。
?
餓漢式:
class Single{
private Single(){} //私有化構(gòu)造函數(shù)。
private static Single s = new Single(); //創(chuàng)建私有并靜態(tài)的本類對象。
public static Single getInstance(){ //定義公有并靜態(tài)的方法,返回該對象。
return s;
}
}
?
懶漢式:延遲加載方式。
class Single2{
private Single2(){}
private static Single2 s = null;
public static Single2 getInstance(){
if(s==null)
s = new Single2();
return s;
}
}
?
2.模板方法設(shè)計模式:
解決的問題:當(dāng)功能內(nèi)部一部分實現(xiàn)時確定,一部分實現(xiàn)是不確定的。這時可以把不確定的部分暴露出去,讓子類去實現(xiàn)。
abstract class GetTime{
public final?void getTime(){?//此功能如果不需要復(fù)寫,可加final限定
long start = System.currentTimeMillis();
code();?//不確定的功能部分,提取出來,通過抽象方法實現(xiàn)
l ong end = System.currentTimeMillis();
System.out.println("毫秒是:"+(end-start));
}
public abstract?void code();?//抽象不確定的功能,讓子類復(fù)寫實現(xiàn)
}
class SubDemo extends GetTime{
public void code(){?//子類復(fù)寫功能方法
...
}
}
new?SubDemo.getTime():
?
轉(zhuǎn)載于:https://www.cnblogs.com/chenyongsai/p/9555247.html
總結(jié)
以上是生活随笔為你收集整理的JAVA基础知识总结8(设计模式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 全栈开发,Day116(可
- 下一篇: vscode Python 运行环境配置