欢迎来到study-hard-forever的博客

随笔分类 -  设计模式

只要真正深入地理解了设计原则,很多设计模式其实就是原则的应用而已,或许在不经意间就在使用设计模式了。 有的人说设计模式没有必要去学习,因为小白学了也只明其形不知其理,根本就不会用到实际开发中,大佬也没有必要学,因为已经在用了。 调侃一句,还挺有道理的(谬论,为懒惰找的借口)~大佬曾经也是小白啊~小白不学习,哪来的大佬~ 生活还在继续,编程也不会结束,我们对程序、对爱情、对理想、对人生的讨论和思考还在继续。——《大话设计模式》 生活不止眼前的苟且,还有将来的苟且,偶尔带一些诗和远方~ 加油,奥利给!
摘要:##模板方法模式: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板方法模式实际上是所有模式中最为常见的几个模式之一,而且很多人可能使用过模板方法模式而没有意识到自己已经使用了这个模式。模板方法模式是基于继承的代码复 阅读全文
posted @ 2020-06-19 00:47 study-hard-forever 阅读(63) 评论(0) 推荐(0)
摘要:##原型模式: 用原型实例指定创建对象的种类,并且通过拷贝这种原型创建新的对象。(从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节) 使用场景: 1、资源优化场景。 2、类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。 3、性能和安全要求的场景。 4、通过 new 产生 阅读全文
posted @ 2020-06-19 00:46 study-hard-forever 阅读(137) 评论(0) 推荐(0)
摘要:##工厂方法模式: 简单工厂 VS 工厂方法(以计算器为例): 简单工厂UML结构图: 工厂方法UML结构图: 简单工厂模式最大的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。但是我们增加新功能时,我们一定要修改工厂类中的Cas 阅读全文
posted @ 2020-06-19 00:33 study-hard-forever 阅读(181) 评论(0) 推荐(0)
摘要:##代理模式: 代理模式(Proxy Pattern),为其他对象提供一种代理以控制对这个对象的访问,这种类型的设计模式属于结构型模式。 代理模式其实就是访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途(代理就是真实对象的代表。) 应用实例: 1、Windows 里面的快捷方式。 2 阅读全文
posted @ 2020-06-19 00:31 study-hard-forever 阅读(84) 评论(0) 推荐(0)
摘要:##装饰模式: 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨 阅读全文
posted @ 2020-06-19 00:29 study-hard-forever 阅读(74) 评论(0) 推荐(0)
摘要:##策略模式: 策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化(策略模式是对算法的包装,是把使用算法的责任和算法本身分割开,委派给不同的对象管理)。 使用策略模式可以把行为和环境分割开来。环境类 阅读全文
posted @ 2020-06-19 00:28 study-hard-forever 阅读(161) 评论(0) 推荐(0)
摘要:##简单工厂模式: 接口是用来封装隔离具体的实现的,目标就是不要让客户端知道封装体内部的具体实现。 简单工厂的位置是位于封装体内的,所以简单工厂知道具体类的实现是没有关系的。 对于客户端来说,只是知道了接口和简单工厂。 优点: 工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户 阅读全文
posted @ 2020-06-19 00:26 study-hard-forever 阅读(148) 评论(0) 推荐(0)