- /*
- 设计模式方式1;
- 几种模式综合在一起就是框架,有23种设计模式;
- 单例设计模式:
- 解决一个类在内存只存在一个对象。
- 想要保证对象唯一
- 1、为了避免其他程序过多建立该类对象,先禁止其他程序建立
- 2、还为了让其他可以访问该类对象,只要在本类中自定一个对象
- 3、为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式
- 如果用代码体现:
- 1、将 类中方法私有化: ---private关键字,其他程序无法建立对象
- 2、在类中创建一个本类对象 ---直接返回给外界一个对象,外界就不需要自己新建对象来访问,
- 而且也建不了,因为构造函数被私有化了,众所周知,声明对象必须运行构造函数进行初始化数据。
- 3、提供一个方法可以获取到该对象 ---其他都被私有化!
- 当需要将事物的对象保证在内存中唯一时,就将以以下三步加上即可;
- */
- class Single{
-
- private int num;
- public void setNum(int num){
-
- this.num=num;
- }
-
- public int getNum(){
-
- return num;
- }
- //第一步 私有化构造函数,导致外界无法建立对象
- private Single(){};
-
- //第二步 --这个的格式和 int x = 。。。一样,Single 是类类型。
- private static Single s = new Single();
-
- //第三步 返回数据类型是 类类型,因为对象是类类型,因为没有其他对象可以调用,只能用类名掉调用,所以加static
- // 其次要访问静态成员,就是第二步,所以第二步的对象也要静态,
- public static Single getInstance(){
-
- return s;
-
- }
-
- }
- class SingleDemo{
-
- public static void main(String[] args){
-
- //可以在本类中的声明一个对象
- //SingleDemo s0 = new SingleDemo();
-
- //返回的是类类型的对象
- Single s1 = Single.getInstance();
-
- Single s2 = Single.getInstance();
- //SingleDemo s2 = new SingleDemo();
- s1.setNum(20);
- System.out.println(s2.getNum()); //结果是20,si s2在内存中共用一个对象
-
- }
- }
复制代码
|
|