![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
weixin_43822082
这个作者很懒,什么都没留下…
展开
-
设计模式-1-模板方法 template method
软件构建过程中,对于某一项任务,不使用设计模式class Library{public:void Run(){}}重构到设计模式原创 2019-09-17 23:13:58 · 69 阅读 · 0 评论 -
设计模式2-策略模式Strategy
参考资料:https://www.bilibili.com/video/av24176315/?p=4动机在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使得对象变得异常复杂,而且有时候支持不使用的算法 也是一种性能负担.实例考虑税法计算程序,不同国家的税法计算方式是不同的,如果构建一个税法计算的类,支持不同国家的税法计算.不使用设计模式...原创 2019-09-18 21:28:47 · 79 阅读 · 0 评论 -
设计模式3-观察者模式obsersver/event
动机在软件构建过程中,我们需要为某些对象创建"通知依赖关系",一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知.如果这样的依赖关系过于紧密,将使软件不能很好的抵御变化.使用面向对象技术,可以使得这种依赖关系弱化,并形成一种稳定的依赖关系,从而实现软件体系结构的松耦合.实例考虑一个文件分割器,是一个窗口界面程序.它可以根据指定的文件路径,读取文件,并将文件分割成指...原创 2019-09-19 22:07:16 · 97 阅读 · 0 评论 -
设计模式4-装饰器模式Decorator
装饰器模式属于"单一职责"模式.在软件组件的设计中,如果责任划分不清晰,使用继承得到的结果,往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这是代码的bad smell.典型的单一职责模式:Decorator,Bridge.这两种模式表现出了很强的"单一职责模式的味道".动机在某些情况下,我们可能会"过度的使用继承来扩展对象的工程",由于继承为类型引入了静态特质,使得这种扩展方式缺...原创 2019-09-20 20:59:19 · 84 阅读 · 0 评论 -
设计模式5-桥模式
桥模式也是单一职责模式的一种,设计的初衷是为了避免子类急剧膨胀,充斥重复代码.动机由于某些类型固有的实现逻辑,使得他们具有两个甚至多个变换的维度,如何应对这种多个维度的变化,如何利用面向对象的技术可以使得类型轻松地沿着两个甚至多个方向的变化,而不引入额外的复杂度.实例考虑一个messager通信模块类设计,...原创 2019-09-21 18:14:31 · 97 阅读 · 0 评论 -
设计模式6-工厂模式
工厂模式属于对象创建模式.通过 "对象创建"模式绕开new,避免对象创建(new)导致的紧耦合,从而支持对象创建的稳定.它是接口抽象之后的第一步工作.典型的对象创建模式:Factory MethodAbstract FactoryPrototypeBuilder本文介绍工厂模式.实例考虑一个窗口程序,在按键按下的时候执行文件分割的操作.class FileSplitter{...原创 2019-09-22 18:52:24 · 88 阅读 · 0 评论 -
设计模式7-抽象工厂
抽象工厂模式Abstract Factory, 解决的是一系列相互依赖对象的创建实例考虑一个数据库员工数据输出的类,class EmployeeDataBaseOutput{ public: vector<Employee> GetAllEmployees() { SqlConnection* connection = new SqlConnectio...原创 2019-09-24 11:17:20 · 92 阅读 · 0 评论 -
设计模式8-单件模式Singleton
单件模式属于 对象性能 模式面向对象很好的解决了抽象问题,但是必不可免的要付出一定的代价.对于通常的情况来讲,面向对象的成本可以忽略不计.但是在某些情况下,面向对象带来的成本必须谨慎处理.典型模式:SingletonFlyweight动机在软件系统中,经常有一些特殊的类,必须保证他们只存在一个实例,才能保证逻辑的正确性,以及良好的效率.保证只存在一个类的实例,应该是类设计者的责...原创 2019-09-26 22:02:29 · 95 阅读 · 0 评论