代码重构
如何写好一个单例模式
真正写好一个单例模式并不容易。
首先来看懒汉模式的写法,这种写法只能用在单线程执行的情况。为了在多线程情况下执行需要对 getInstance 方法增加 synchronized 关键字。然而这样做会降低程序执行效率。为了降低性能方面对影响,可以执行 synchronized 的作用范围。
上述写法的问题在于在类加载阶段,代码即被载入,如果一直没有被使用,会导致浪费空间。
此外上面的代码存在会被重复执行的问题。使用双重检查验证,可以避免重复执行的问题。也可以避免被提前加载的问题。
当然,也可以使用饿汉的单例写法。
更被推荐的写法是枚举写法。
如何写好一个组合模式
案例内容
请用组合设计模式编写模式,打印输出图1的窗口,窗口组件的树结构如图2所示,打印输出实例参考图3.
示例代码
参考:
[极客时间每日一课《在Java中如何写一个正确的单例模式?》](https://time.geekbang.org/dailylesson/detail/100044001)
[王友的《单例模式与组合模式总结与练习》]https://xie.infoq.cn/article/a36142188e1c43c07006f127e
评论 (3 条评论)