reupe

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

02 2019 档案

摘要:假设有这样一个场景:使用一个画图软件画一辆汽车,细节忽略,我们暂且只画汽车的车身、轮胎、底盘三个部分,画完之后进行上色,上色之后再进行矫正。对于画图而言,车身、底盘和轮胎组成一辆汽车,这样的结构很稳定,不会说多出一个翅膀,而不稳当的部分在于汽车的颜色和细节部分,本文要介绍的访问者模式,致力于将“不稳 阅读全文
posted @ 2019-02-27 20:19 yxlaisj 阅读(464) 评论(0) 推荐(0)

摘要:面向对象编程中,对象之间存在着种种关系,比如has-a, has-a关系又叫组合关系,比如公司和部门之间,集体和个人之间等等。公司一般都会有呈树状的组织架构,有时候,希望使用树状结构来表达整体和部分之间的关系,使客户能够不加以区分地处理结构中的每一个对象,这时候就会用到 组合模式。 1.组合模式 组 阅读全文
posted @ 2019-02-26 17:45 yxlaisj 阅读(349) 评论(0) 推荐(0)

摘要:单例模式是开发程序过程中最常见的开发模式之一,很多优秀的框架都是采用单例模式设计的,比如spring容器,默认情况下就是采用单例模式来管理Bean对象的。正是因为单例模式简单而常用,所以很多人开发中会滥用单例模式,一些批评者认为,很多情况下根本没有必要使用单例,而且使用单例模式,就必然会引入一个全局 阅读全文
posted @ 2019-02-25 17:56 yxlaisj 阅读(153) 评论(0) 推荐(0)

摘要:计算器中,我们输入“20 + 10 - 5”,计算器会得出结果25并返回给我们。可你有没有想过计算器是怎样完成四则运算的?或者说,计算器是怎样识别你输入的这串字符串信息,并加以解析,然后执行之,得出结果?这里就引出了今天我想要介绍的一个设计模式 解释器模式。 1.解释器模式 解释器模式(Interp 阅读全文
posted @ 2019-02-25 09:10 yxlaisj 阅读(289) 评论(0) 推荐(0)

摘要:面向对象编程的过程中,经常需要创建对象,如果频繁创建对象特别是使用容器持有对象,那么内存的占用就会越来越高,这对于大型项目来说有时候是致命的。比如对于一篇文档,文档中有文字,而文字是有字体信息、格式信息、颜色信息、位置信息等,显而易见,在面向对象编程中,每个文字被视作一个来处理,那么一篇文档中如果有 阅读全文
posted @ 2019-02-21 09:46 yxlaisj 阅读(513) 评论(0) 推荐(0)

摘要:策略的选择很多时候再开发过程中都会涉及到,比如说排序,有时候需要使用从大到小排序的方案,有时候需要从小到大的排序方案。与其直接在使用时实现排序算法,不如将算法封装起来,这样的话,就可以在程序运行时根据不同场景动态地选择合适的算法了。运行时动态选择方案可以使代码更灵活、复用性高、易于扩展等,策略模式就 阅读全文
posted @ 2019-02-19 10:35 yxlaisj 阅读(451) 评论(0) 推荐(0)

摘要:相信大家和我一样,在实际开发应用过程中,很难看代码中有直接new对象的情况,在一开始,也会被前辈告诫,尽量不要使用new来构造对象,尽量使用工厂方法获取对象云云。但是,我相信很多人和我一样,一开始是一知半解的状态,凭什么不能这样做,用工厂方法获取对象,多此一举吧?但是随着开发经验的逐渐累积,我发现将 阅读全文
posted @ 2019-02-17 19:30 yxlaisj 阅读(338) 评论(0) 推荐(0)

摘要:说到中介大家都不会陌生,买房子租房子有中介,出国留学有中介,买卖二手车还是有中介。那么中介到底是个什么角色呢?实际上,中介就是让买卖双方不必面对面直接交流,由他/她来完成买卖双方的交易,达到解耦买卖人,同时给买卖双方带来方便的一个职业角色。对于应用开发来说,代码就是来源于生活,就是生活的抽象,因此, 阅读全文
posted @ 2019-02-16 18:12 yxlaisj 阅读(261) 评论(0) 推荐(0)

摘要:假如有这样一个场景:小红做作业的时候,有一道题不会做,这时候,小红就去问同桌小明怎么做,小明表示也不会做,于是,小红又去问学习委员小黄,小黄也不会做,最后,小红不得不请教老师这个问题,老师给江红讲解了这个问题。 从上述场景中,我们看到小红依次找了 小明、小黄、老师,如果用流程图表示,那么就是: 看起 阅读全文
posted @ 2019-02-15 09:29 yxlaisj 阅读(185) 评论(0) 推荐(0)

摘要:假如公司计划开发一套MDM(移动设备管理)系统,即管理员可以在web页面上操控接入系统的手机(这里不区分Android和iOS),比如,针对某台手机,在web页面上点击“锁屏”按钮,该手机就锁屏了,点击“解锁”按钮,该手机就解锁了。 对于这套系统,核心部分无疑就是刚刚描述的一系列对手机下发命令。这套 阅读全文
posted @ 2019-02-13 20:01 yxlaisj 阅读(172) 评论(0) 推荐(0)

摘要:假如需要设计这样一个业务场景:某公司管理系统登录账户有销售员工、研发员工用户,现系统规划考勤系统、薪资系统需要针对三种员工做不业务逻辑。该系统有两个维度方面的变化,一个是员工的变化,即可以是销售员工,可以是研发员工;另一个是业务维度的变化,即考勤系统和薪资系统的变化,针对这一系统设计,我尝试从单继承 阅读全文
posted @ 2019-02-12 10:46 yxlaisj 阅读(385) 评论(1) 推荐(0)