单例和工厂模式应用

           单例模式虽然说只有一个类,但是在应用中,作用也不小,下面看看单例模式和工厂模式的应用:

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();


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值