
设计模式
设计模式
-小酒窝-
这个作者很懒,什么都没留下…
展开
-
【设计模式】Template 模板模式
是什么: 顾名思义,就是通过模板拓印的方式, 定义模板采用抽象类来定义,公共的结构化逻辑需要在抽象类中完成,只将非公共的部分逻辑抽象成抽象方法,留待子类充实实现。 AbstractClass:实现一个模板方法,定义了算法的骨架,具体子类将重定义PrimitiveOperation以实现一个算法的步骤。AbstractClass其实就是一个抽象模板,定义并实现了一个模板方法。 ConcreteC...原创 2019-12-05 11:23:37 · 159 阅读 · 0 评论 -
【设计模式】Prototype 原型模式
概述: 原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。 应用场景: 资源优化场景,类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。 性能和...原创 2019-12-05 11:05:19 · 198 阅读 · 0 评论 -
【设计模式】Strategy 策略模式
策略模式是什么? 策略是对算法的封装,是一种形为模式,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。 为什么要用? 优点: 1.扩展性良好; 2.避免使用多重条件判断,遵循开闭原则; 3.算法可以自由切换。 缺点: 1.所有策略类都需要对外暴露; 2.策略类会增多。 怎么用? 策略模式有以下几个概念: Strategy接口:定义每个策略或算法必须具有的方法和属性。 Conc...原创 2019-12-05 10:20:44 · 173 阅读 · 0 评论 -
【设计模式】Delegate 委派模式
这里我以一个简单的例子来形容,公司有大boss和部门leader以及部门里的员工,现在大boss给部门leader下达了任务,而作为部门leader肯定是对任务进行具体的规划然后委派给部门里的员工去完成。这中间的关系就类似于委派模式。作为大boss他可以不知道任务具体是哪个员工做的,甚至可以不知道员工的存在,只要以结果为导向,最终能完成任务就可以。作为部门leader相当于一个中介,全程跟进员工的...原创 2019-12-05 10:04:53 · 207 阅读 · 0 评论 -
【设计模式】Factory 工厂模式
工厂是干嘛的?工厂肯定是生产东西的,在面向对象编程的世界里,工厂是用来生产对象实例的。 一个工厂生产的东西是有共性的,比如生产手机的工厂,可以抽象出一个phone接口, 在Java世界中具有共性的东西叫什么:Interface或者abstract class。许多implements 一个interface或者extends 一个抽象类的子类因为其接口或者父类而具有了共性。下边借用生产手机...原创 2019-12-04 16:56:35 · 164 阅读 · 0 评论 -
【设计模式】Proxy 代理模式
我认为设计模式是:一种思想,一种模式,一种套路,一种解决问题的高效策略。下边借用网上常见的一种例子来解释代理模式。 什么是代理模式: 代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。 为什么要用代理模式: 一般是因为客户端不想直接访问实际的对象,或者访问实际的对象存在困难,因此通过一个代理对象...原创 2019-12-04 15:33:55 · 241 阅读 · 0 评论 -
【设计模式】Singleton 单例模式
所谓单例,就是整个程序有且仅有一个实例。该类负责创建自己的对象,同时确保只有一个对象被创建。 使用单例模式可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收。 特点 类构造器私有 持有自己类型的属性 对外提供获取实例的静态方法 一、应用场景: 开发项目时候多个功能模块都需要写log。为了把log集中处理,便于分析,log对象可以是单例的。 有一个...原创 2019-12-04 14:18:14 · 176 阅读 · 0 评论