![](https://img-blog.csdnimg.cn/20210818000849487.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java设计模式
文章平均质量分 94
Java设计模式
巨輪
How many ten years are in left time?
展开
-
Java设计模式(4 / 23):单例模式
文章目录单例模式的应用场景饿汉式单例模式懒汉式单例模式改进:synchronized改进:双重检查锁改进:静态内部类破坏单例用反射破坏单例用序列化破坏单例解密注册式单例模式枚举式单例模式解密容器式单例线程单例实现ThreadLocal单例模式小结参考资料单例模式的应用场景单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛,例如,公司CEO、部门经理等。J2EE标准中的ServletCo原创 2021-10-21 00:48:37 · 926 阅读 · 0 评论 -
Java设计模式(3 / 23):装饰者模式
定义装饰者(Decorator)模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。案例1:三点几啦更新咖啡连锁店的订单系统,原先类的设计:咖啡店为拓展业务,允许顾客在饮料上添加各种调料,如:蒸奶 Steamed Milk豆浆 Soy摩卡(巧克力风味) Mocha覆盖奶泡加入的调料收取不同的费用。首次尝试类数量爆炸这违背严重两条设计原则:多用组合,少用继承。为了交互对象之间的松耦合设计而努力。再次尝试利用实例变量和继承,追踪这些调料原创 2021-08-21 18:55:19 · 530 阅读 · 4 评论 -
Java设计模式(1 / 23):策略模式
定义策略(Strategy)模式定义了算法族,分别封装起来,让它们之间可以互相替换 ,此模式让算法的变化独立于使用算法的客户。案例:模拟鸭子应用一开始新需求:模拟程序需要会飞的鸭子在父类新添加fly()方法。这样做的弊端:并非Duck所有的子类都会飞,如橡皮鸭。当涉及维护时,为了复用(reuse)目的而使用继承,结局并不完美。一种补救的方法把橡皮鸭类中的fly()方法覆盖掉。新麻烦:加入诱饵鸭(DecoyDuck)类,它是假鸭,不会飞也不会叫。利用继承来提供Duck的行原创 2021-08-19 02:43:37 · 644 阅读 · 1 评论 -
Java设计模式(2 / 23):观察者模式
定义观察者(Observer)模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。OO设计原则:为了交互对象之间的松耦合设计而努力。案例:气象监测应用概括此系统中的三个部分是气象站(获取实际气象数据的物理装置)WeatherData对象(追踪来自气象站的数据,并更新布告板)布告板(显示目前天气状况给用户看)WeatherData对象知道如何跟物理气象站联系,以取得更新的数据。WeatherData对象会随即更新三个布告板的显示:原创 2021-08-17 21:14:19 · 616 阅读 · 1 评论