单例模式虽然说只有一个类,但是在应用中,作用也不小,下面看看单例模式和工厂模式的应用:
1、单例模式
1)懒汉式单例模式
public class UserManager {
//实例化静态变量
private static UserManager instance=new UserManager();
private UserManager(){}
//获取唯一实例
public static UserManager getInstance(){
return instance;
}
}
2)恶汉式单利模式
public class UserManager {
//实例化静态变量
private static UserManager instance=null;
private UserManager(){}
//获取唯一实例
public static UserManager getInstance(){
if (instance==null){
instance=new UserManager();
}
return instance;
}
}
2、工厂模式
1)电视接口及其实现类:
电视接口:
public interface TV{
//打开电视
public void openTV();
//关闭电视
public void closeTV();
}
海尔电视:
public class HaiErTV implements TV{
//打开电视
@Override
public void openTV(){
System.out.println("打开海尔电视");
}
//关闭电视
@Override
public void closeTV(){
System.out.println("关闭海尔电视");
}
}
长虹电视:
public class ChangHongTV implements TV{
//打开电视
@Override
public void openTV(){
System.out.println("打开长虹电视");
}
//关闭电视
@Override
public void closeTV(){
System.out.println("关闭长虹电视");
}
}
2)电视工厂接口及其实现类
电视工厂:
public interface TVFactory {
//创建电视
public TVcreateTV();
}
海尔电视工厂:
public class HaiErTVFactory implements TVFactory {
//创建海尔电视
@Override
public TV createTV(){
System.out.println("创建海尔电视");
return new HaiErTV();
}
}
长虹电视工厂:
public class ChangHongTVFactory implements TVFactory {
//创建长虹电视
@Override
public TV createTV(){
System.out.println("创建长虹电视");
return new ChangHongTV();
}
}
3)客户端调用
TVFactory tvFactory=new HaiErTVFactory();
TV tv=tvFactory.createTV();
tv.open();