欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java設(shè)計模式和應(yīng)用場景

李明濤1年前6瀏覽0評論

設(shè)計模式是在軟件開發(fā)領(lǐng)域中,針對特定問題的解決方案,它利用了過去經(jīng)驗和成功的設(shè)計實踐。Java中有23種常見的設(shè)計模式。

應(yīng)用場景:

1. 工廠模式(Factory Pattern):當(dāng)需要根據(jù)不同條件創(chuàng)建不同對象時,工廠模式很有用。例如,一個類固定處理一種事情,但可能有不同的方式要求進行處理,這時就可以使用工廠模式來創(chuàng)建實例。

public interface Animal{
void sound();
}
public class Dog implements Animal{
public void sound(){
System.out.println("汪汪!");
}
}
public class Cat implements Animal{
public void sound(){
System.out.println("喵喵!");
}
}
public class AnimalFactory{
//根據(jù)類型返回實例
public Animal getAnimal(String type){
if(type.equals("dog")){
return new Dog();
}else if(type.equals("cat")){
return new Cat();
}
return null;
}
}
public class Main{
public static void main(String[] args){
AnimalFactory animalFactory = new AnimalFactory();
Animal animal1 = animalFactory.getAnimal("dog");
animal1.sound();
Animal animal2 = animalFactory.getAnimal("cat");
animal2.sound();
}
}

2. 代理模式(Proxy Pattern):代理模式是在一個對象之前提供了一個代理,以控制對該對象的訪問,可以對對象的訪問控制,提供對象的保護。

interface Image {
	void display();
}
class RealImage implements Image {
private String fileName;
public RealImage(String fileName){
this.fileName = fileName;
loadFromDisk(fileName);
	}
@Override
	public void display() {
System.out.println("Displaying " + fileName);
	}
private void loadFromDisk(String fileName){
System.out.println("Loading " + fileName);
	}
}
class ProxyImage implements Image{
private RealImage realImage;
	private String fileName;
public ProxyImage(String fileName){
this.fileName = fileName;
	}
@Override
	public void display() {
if(realImage == null){
realImage = new RealImage(fileName);
}
realImage.display();
	}
}
public class Main {
	public static void main(String[] args) {
Image image = new ProxyImage("test.png");
image.display();
System.out.println("");
image.display();
	}
}

3. 單例模式(Singleton Pattern):在整個應(yīng)用程序中,只有一個實例。可以通過靜態(tài)方法getInstance() 來創(chuàng)建單例,可以從任何地方訪問它的方法。

class Singleton {
private static Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
	}
public void showMessage(){
System.out.println("Hello World!");
	}
}
public class Main {
	public static void main(String[] args) {
Singleton obj = Singleton.getInstance();
obj.showMessage();
	}
}

以上是Java中幾個常見的設(shè)計模式,通過對應(yīng)不同的問題優(yōu)化,使程序達到更好的聚焦性和可維護性。