java基础 第九章(设计模式 单例模式)

设计模式(23种)

     设计模式就是一种思想 java 、c++……

     就比如是盖房子,起初只是为了住人,后来房子装饰,装饰就是一种设计模式,分为欧式,中式呀,这就是设计模式。

一、第一种单例模式(饿汉式)

    1. 一般的思想: 谁调用一个方法,谁就去new一个对象

        单例:自己new自己

    2.分析及步骤

       (1)不能让外界创建对象(构造函数 private )

       (2)让调用类自己去创建一个对象。

       (3)提供一个方法,让外界可以获取第二步创建的共享对象

     例1:class Single{

                   private Single(){    //构造函数

                   }

                   private static Single single =  new Single(); //自己创建对象

                   public static Single getInstance(0{

                        return single;

                   }

              }

              public class SingleDemo{

                   public static void main(String[] args){

                       Single single1 = Single.getInstance();

                       Single single2 = Single.getInstance();

                       System.out.println(single1 = single2); // true 

                   }

              }

       例2: 买袜子的单例

              class Sock{

                  private int count;

                  private double money;

                  private Sock{

                  }

                  private static Sock.sock = new Sock();

                  public static Sock getInstance(){

                         return sock;

                  }

                  public void setCount(int cc){

                      count = count + cc;

                  }

                  public int getCount(){

                       return count; 

                  }

                  public double getMoney(){

                       return money = count * 10;

                  }

              }

              public class SockDemo{

                  public static void main(String[] args){

                      Sock sock1 = Sock.getInstance();

                      sock1.setCount(2);

                      double money1 = Sock.getMoney();

                      System.out.println(money1);

                  }

              }

二、第二种单例设计模式(懒汉式)

       例:class Single{

                   private Single(){

                   }

                   private static Single single = null;

                   public static Single getInstance(){

                       if ( single == null) {

                           single = new single();

                       }

                       return single;

                   }

              }

              public SingleDemo{

                  public static void main(String[] args){

                      Single single1 = Single.getInstance();

                      Single single2 = Single.getInstance();

                      System.out.println(single1 == single2); //true

                  }

              }

三、构造函数

    1.就是给对象初始化

    2.没有返回值

    3.函数的名字和类名一样

    例:class Student{

               private int id;

               private String name;

               public student(){

                    id = 1;

                    name = "java";

               }

               public student( int id , String name ){

                    this.id = id;

                    this.name = name;

               }

               public void sys(){

                    System.out.println(id);

                    System.out.println(name);

               }

           }

           public class studentDemo{

               public static void main(String[] args){

                    Student stu1 = new Student();

                    Student stu2 = new Student();

                    stu1.sys();

                    stu2.sys();

               }

           }

猜你喜欢

转载自www.cnblogs.com/catcoffer/p/8994089.html
今日推荐