在Java面試中,單利和工廠是兩個非常常見的概念,下面我們來分別介紹它們。
單利
單利是指一個類在整個應用程序中只能存在一份實例,又叫做單例模式。它可以在多個線程中共享,是多線程編程中常用的設計模式。
下面是一個單例類的實現(xiàn):
public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
在這個示例中,Singleton
類有一個私有的構(gòu)造函數(shù),這意味著它不能在類外部被實例化。我們使用一個靜態(tài)成員變量instance
來保存類的唯一實例,同時還有一個靜態(tài)方法getInstance
用來獲取這個實例。
工廠
工廠是另一個常見的設計模式,用于將對象的創(chuàng)建和使用分離。工廠可以隱藏具體類的實現(xiàn),使得客戶端代碼只依賴于接口而不是具體的類。
下面是一個簡單的工廠類的實現(xiàn):
public class AnimalFactory { public static Animal getAnimal(String type) { if (type.equalsIgnoreCase("dog")) { return new Dog(); } else if (type.equalsIgnoreCase("cat")) { return new Cat(); } else { return null; } } } interface Animal { void speak(); } class Dog implements Animal { @Override public void speak() { System.out.println("汪汪"); } } class Cat implements Animal { @Override public void speak() { System.out.println("喵喵"); } }
在這個示例中,AnimalFactory
是一個工廠類,它根據(jù)傳入的參數(shù)來創(chuàng)建不同的動物對象。Animal
是一個接口,定義了不同動物的行為,而具體的類Dog
和Cat
實現(xiàn)了這個接口。
使用工廠模式,客戶端可以根據(jù)需要調(diào)用AnimalFactory.getAnimal()
方法來獲取不同的動物對象,而無需關心具體實現(xiàn)。
上一篇css文件嵌入式
下一篇css文件只讀怎么修改