色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 單例模式和工廠模式

夏志豪2年前9瀏覽0評論

Java是一種廣泛應(yīng)用于軟件開發(fā)領(lǐng)域的高級編程語言,其設(shè)計(jì)包含了眾多的設(shè)計(jì)模式。在開發(fā)中,單例模式和工廠模式是兩種最為常用的設(shè)計(jì)模式。

單例模式是一種保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問該實(shí)例的全局訪問點(diǎn)的模式。單例模式的主要思想是將構(gòu)造方法設(shè)為私有的,然后在類的內(nèi)部定義一個(gè)私有的靜態(tài)對象,并提供一個(gè)靜態(tài)方法來獲取該實(shí)例。下面是一個(gè)典型的單例模式的代碼示例:

public class Singleton {
private static Singleton instance;
private Singleton() {
// private constructor
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}

上述代碼中,通過私有構(gòu)造方法來保證只有類內(nèi)部才可以創(chuàng)建對象實(shí)例。然后使用私有的靜態(tài)變量instance來記錄單例對象實(shí)例,并提供一個(gè)靜態(tài)方法getInstance()來返回單例對象。

工廠模式則是通過將實(shí)際的對象創(chuàng)建過程單獨(dú)封裝起來,從而在使用時(shí)可以直接調(diào)用工廠方法來獲取需要的對象。工廠模式是一種廣泛使用的對象創(chuàng)建型模式,在復(fù)雜的軟件系統(tǒng)中應(yīng)用非常廣泛。下面是一個(gè)簡單的工廠模式示例:

public interface Shape {
void draw();
}
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Inside Rectangle::draw() method.");
}
}
public class Square implements Shape {
@Override
public void draw() {
System.out.println("Inside Square::draw() method.");
}
}
public class ShapeFactory {
public Shape getShape(String shapeType){
if(shapeType == null){
return null;
}
if(shapeType.equalsIgnoreCase("RECTANGLE")){
return new Rectangle();
} else if(shapeType.equalsIgnoreCase("SQUARE")){
return new Square();
}
return null;
}
}

上述代碼中,通過定義抽象的Shape接口來聲明所有形狀對象的方法,然后定義兩個(gè)實(shí)現(xiàn)了Shape的具體類Rectangle和Square。最后創(chuàng)建一個(gè)工廠類ShapeFactory,它根據(jù)傳遞給getShape方法的字符串參數(shù),從而返回具體的形狀實(shí)例。