
设计模式
文章平均质量分 93
frank909
爱阅读的程序员,专注于技术思考和分享。关注架构设计、Android 开发、AI、数学、自动驾驶领域,个人公号:Frankcall
展开
-
设计模式(五):利用原型模式复制几个葫芦娃
前面的文章介绍了工厂模式和抽象工厂模式、建造者模式,它们都属于创建型设计模式,今天介绍另外一种创建性设计模式,原型模式(prototype pattern)。 什么时候用原型模式? 我个人一直有种观点,就是骨子里懒惰的程序员都喜欢用设计模式,因为懒所以得想尽办法让自己更高效。 原型模式就是一种懒操作,用于频繁创建对象的场所。 日常生活中,我们都说两个人很像,简直就是一个模子里引出来的。 那么,代码中原型模式就是这样基于一个对象快速复制另外一个对象,而无需重头全新创建。 比如,代码要产生 7 个葫芦娃,怎么用原创 2020-09-14 23:15:02 · 1116 阅读 · 1 评论 -
设计模式(四):通过做蛋糕理解构建模式及Android中的变种
之前的文章介绍了抽象工厂模式,本文介绍另外一种创建型的设计模式,构建者模式(Builder Pattern)。 什么是构建者模式呢? 建造者模式是设计模式的一种,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。1 上面的描述有点抽象,所以大白话描述一下。 构建者模式的目的是为了构建一个复杂的对象 复杂的通俗理解就是,可以以不同的参数创建同一类型的不同对象。 和其他创建型模式不同的地方,构建者模式强调过程,是一步一步构建的,和现实当中建房子是一样的。 什么时候用构建者模式?原创 2020-08-23 23:52:09 · 1565 阅读 · 0 评论 -
设计模式(三):旅行的角度理解抽象工厂模式
之前的文章介绍了工厂模式,这篇文章介绍工厂模式的强化版本抽象工厂模式(Abstract Factory Pattern) 。 我们知道工厂模式是用于在延迟创建具体的对象,抽象工厂模式可以看作是面向工厂模式的工厂模式,所以,我称它为强化版本。 什么时候用抽象工厂模式? 我个人并不喜欢抽象工厂模式,因为它一定是为了应付复杂的系统。 试想一下,谁喜欢负责的东西呢? 但软件行业,复杂的业务其实代表了更精细化的需求,所以,这也是它的意义所在。 抽象工厂模式是为了应对产品线,产品线有不同的分支,每个分支代表不同的维度。原创 2020-08-11 22:41:29 · 1517 阅读 · 0 评论 -
设计模式(二):Android 源码中的工厂模式
之前的文章介绍了单例模式,单例模式非常简单,也很容易懂。本文介绍另外一种简单的创建型设计模式:工厂模式(Factory Pattern)。 什么是工厂模式? 工厂模式(Factory Pattern)在实际开发中非常常见,它可以由用户决定创建对象的类型。 因为工厂模式,我们无需向客户暴露我们的代码逻辑,只需要开放接口给客户,由客户指定要创建的对象的类型,便可以动态生成符合需求的类别对象。 什么场合用工厂模式? 需要根据实际情况才能决定创建何种类别对象的场景。 听起来挺悬乎的,其实很容易理解。 假设,你要从广原创 2020-08-02 22:37:01 · 2473 阅读 · 0 评论 -
设计模式(一):Android 源码中的单例模式
什么是单例模式? 单例模式(Singleton) 是最常见也最简单的设计模式,它的目的就是在全局只生成一个类的实例。 什么场合用单例模式 应用中经常有多任务进行信息共享的需求,比如火车票售卖示例中,多个售票窗口其实共享一个票务池。如果一个票务池用一个类,那么这个类就只能用一个实例,否则多任务进行时会引起资源同步的问题。 另外,频繁创建和销毁的对象也可以用一个固定的实例,这样的好处是节省内存重复创建和销毁的开销,提高程序的稳定性。 面向对象的编程很容易实现单例模型,比如 Java、C++ 等等,本文以 Jav原创 2020-07-29 23:30:37 · 1774 阅读 · 0 评论 -
我对面向对象的6大设计原则的理解
程序员都知道编程有 3 大类:面向过程、面向对象、面向函数。面向对象是被讨论的最多的,个人认为,这是因为 Java 之类的编程语言有强大的用户基础,本质还是因为比较符合人的直觉。 说到面向对象,大家可能就会很快想到了 23 种设计模式,可只有少部分人会想到面向对象的 6 大原则,所以本文我分享一下我对于 6 大原则的看法。 6 大原则是内功心法,23 种设计模式是武术套路,它们的本质是为了更好地面对需求的变化。 很多人对于设计模式背诵的滚瓜烂熟,但是却没有办法评价自己的代码质量,尤其是根据自己的想法整了一大原创 2020-07-21 00:46:32 · 1514 阅读 · 3 评论