
设计模式学习
文章平均质量分 92
每天学习一个设计模式
SAO&asuna
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式-原型模式
但是这种实现方法涉及到递归遍历的问题,也就是说如果parent下面还有指针对象,又或者parent的兄弟属性还有其他的指针对象,那么这种实现方法将会变得非常复杂。原型模式是一种创建对象的设计模式,主要通过复制现有对象来创建新对象,而不是通过实例化新对象的类。可以看到上面两种方法的实现,都需要类对象的首字母开头大写,这样可能会有参数泄漏的风险,下面可以看看反射的实现,比较复杂。可以看到在创建prototype对象的基础上,可以快速的初始化其他两个对象。如果不包含这类属性,是不会存在问题的。原创 2024-09-07 16:16:02 · 2941 阅读 · 0 评论 -
设计模式-单例模式
但是这种方式仔细想想的话,不管instance有没有被初始化,每次有一个instance来的时候都需要获取一次锁,这样对性能很不友好。因此,可以在此基础上加一层判断,如果instance已经被初始化了,就没必要再获取锁了。缺点也很明显,就是浪费资源,如果一个实例一直没用到,就会造成资源的浪费。如果第一次执行的时候,随机到了Deny就会导致后续一直是nil,限制太大,我们继续看看sync.mutex的实现。,需要注意的是,如果sync.Once使用的时候Do函数失败了,那么就会导致对象一直为nil。原创 2024-09-06 21:00:09 · 1242 阅读 · 0 评论 -
策略模式与简单工厂模式的不同点
策略模式是一种行为型设计模式,它定义了一系列算法,并将每一个算法封装起来,使它们可以互相替换,从而让算法的变化不会影响到使用算法的客户。策略模式使得算法可以在不影响客户端的情况下发生变化。在策略模式中,我们将不同的算法封装在独立的类中,称为策略类。每一个策略类实现一个共同的接口,这样可以在运行时通过该接口来调用具体的算法。策略接口(Strategy):这是一个接口,定义了算法的公共方法。具体策略类(Concrete Strategy):实现策略接口的具体类,每个类封装了一种算法。原创 2024-08-27 22:03:08 · 859 阅读 · 0 评论 -
设计模式-策略模式
并将每一个算法封装起来,使它们可以互相替换,从而让算法的变化不会影响到使用算法的客户。策略模式使得算法可以在不影响客户端的情况下发生变化。在策略模式中,我们将不同的算法封装在独立的类中,称为策略类。每一个。原创 2024-08-27 21:58:54 · 1375 阅读 · 0 评论 -
设计模式-简单工厂模式&工厂方法模式
简单工厂模式并不是一种正式的设计模式,但它确实是一种常用的编程技巧。在简单工厂模式中,工厂类包含了一个方法,原创 2024-08-27 21:42:49 · 1073 阅读 · 0 评论