读书笔记 秒懂设计模式

仅个人纪录学习,可能有错别字 错误的内容等 侵删

图很糊去买书看 支持作者 网上epub转pdf很糊 有时间会用poesson重新画的 

1.面向对象的三大特性

(1封装

防止外部访问,造成数据污染,对外暴露接口简单,让使用者不用担心内部实现细节

避免过度封装,使代码难以维护和管理

(2继承

重要的面向对象特性,让父类的方法和属性延伸到子类中,缩减代码量,利于维护,子类可以通过重写来修改继承来的数据和方法实现

(3多态

创建对象是通常有定义一个引用来指向它,方便进行后续操作,父类的引用只能指向本类或者子类实例化的对象,除此之外,还有其他形式的如抽象类引用指向子类对象,接口类引用指向实现类对象。

2.创建类型的设计模式

2.1单例(孤独的太阳

要求

(1 确保对象不能被别人创建:构造方法私有化

private Sun(){}

(2让实例化工作归属内部事务:内部属性自有永永有

private static final Sun sun = new Sun();

static 保持静态性,让再类加载过程中就初始化,与内存堆中实例化,无法被垃圾回收。

final 保证常量 一旦被赋值就不能修改

new 饿汉模式

(3添加程序入口

public static sun getInstance()

方法公开

(4懒汉模式

private static Sun sun;//去掉final

public static sun getInstance(){//需要时再创建

 if sun==null

 return sun

}

(5多线程考虑

public static synchronized sun getInstance()//加入synchoronrized

(6方法加锁要求太高,由于指令重排等原因,

真正的如下

public class sun{

private volatile static Sun sun;//去看juc

privaye Sun(){}

public stiatic Sun hetInstance(){

if(sun==null){

        synchronized(Sun.class){

                if(sun==null) {

                        sun = new Sun();

                }

        }

}

return sun;

}

}

还有静态内部类 枚举等方式实现单例模式,只有枚举不能被反射破坏单例,其他都能被反射破坏单例

单例本质

<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值