您的位置:首页 > 其它

单例和工厂模式应用

2015-05-31 21:24 211 查看
单例模式虽然说只有一个类,但是在应用中,作用也不小,下面看看单例模式和工厂模式的应用:

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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: