设计模式
工作中学习中用到的设计模式,以自己的理解,记录成文章,供大家及自己回顾讨论
decode-life
孤独的程序猿
展开
-
设计模式简介
设计模式简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重...原创 2018-12-25 16:28:00 · 99 阅读 · 0 评论 -
单例模式
单例模式 保证一个类仅有一个实例(sInstance), 并提供一个访问该实例的全局访问点(getInstance). 这就意味着单例通常有如下两个特点: 构造函数是私有的(避免别的地方创建它) 有一个static的方法来对外提供一个该单例的实例. 优点: 在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 避免对资源的多重占用(比如写...原创 2019-01-31 11:18:00 · 94 阅读 · 0 评论 -
策略模式
策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 优点: 算法可以自由切换。 避免使用多重条件判断。 if……else……...原创 2018-12-26 16:29:00 · 101 阅读 · 0 评论 -
创建者模式(Builder)
创建者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 优点: 建造者独立,易扩展。 便于控制细节风险。 缺点: 产品必须有共同点,范围有...原创 2019-01-07 17:15:00 · 123 阅读 · 0 评论 -
模板方法模式
模板方法模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 优点: 封装不变部分,扩展可变部分。 提取公共代码,便于维护。 行为由父类控制,子类实现。 缺点: 每一个不同的实现都需要一个子类来实现,...原创 2019-01-11 14:52:00 · 127 阅读 · 0 评论 -
代理模式
前言 小龙同学花费毕生绝学精心学习并制作了自动化测试之selenium ,但预定分享时间时,小龙龙同学胆怯了,于是大哥小强出马,帮他完成预定分享时间的工作 代理模式 为其他对象(小龙)提供一个代理(小强)以控制对这个对象的访问. 类图如下: 优点: 职责清晰。 高扩展性。 智能化。 缺点: 由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的...原创 2019-09-10 10:26:46 · 836 阅读 · 0 评论 -
观察者模式
观察者模式 观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,==一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知==。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。 优点 省去了反复...原创 2019-09-17 09:49:28 · 905 阅读 · 0 评论