![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
设计模式学习笔记 记录个人想法
点云哥
交流算法,开发,GIS二次开发,点云处理,深度学习。 记录学习历程
展开
-
设计模式学习-总结
设计模式学习-总结目的应对变化,可复用实现应用于变化点,针对变化点,重构变化点关键点静态->动态早绑定->晚绑定继承->组合编译时依赖->运行时依赖紧耦合->松耦合结语设计模式本质是设计原则,遵循原则是根本。根本所求是找到关键的变化界线,达到复用的目的。设计模式只是对抽象原则的部分实际总结,实战中模式直接套用为大忌,要根据实际需求,变化进行设计,原则至上。导向图目录组件协作模式模板方法策略模式观察者模式单一职责模式装饰模式桥原创 2020-12-30 16:14:48 · 177 阅读 · 0 评论 -
设计模式学习-命令模式,访问器,解析器
设计模式学习-命令模式,访问器,解析器命令模式,访问器主要解决行为变化归结为行为变化模式,解析器比较特殊归结为领域规则模式命令模式(Command)定义将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及可撤销操作通俗概括由于行为变化频繁,将行为与组件本身分离,实现松耦合模式示意图访问器(Visitor)定义表示一个作用于某对象结构中各元素的操作。使得可以在不改变(稳定)各元素的类的前提下定义(扩展)作用于这些元原创 2020-12-30 16:00:06 · 198 阅读 · 0 评论 -
设计模式学习-组合模式,迭代器,职责链
设计模式学习-组合模式,迭代器,职责链三种模式应用数据结构实现,可归结为数据结构模式组合模式(Composite)定义将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性(稳定)通俗概括对于部分对象组合操作问题,针对执行组合多与少的问题,将待操作对象组织为树结构,使得对象组合调用一致。模式示意图迭代器(Iterator)定义提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示原创 2020-12-30 15:52:03 · 220 阅读 · 0 评论 -
设计模式学习-状态模式,备忘录
设计模式学习-状态模式,备忘录两种模式状态管理突出,可归结为状态变化模式状态模式(State)定义允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为通俗概括类似策略模式,利用多态将变化的状态及对应行为抽象出来,分出一个稳定的流程和一个变化的状态。注重状态及其行为(状态转换等)的变化问题模式示意图备忘录(Memento)定义在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保原创 2020-12-30 15:47:52 · 179 阅读 · 0 评论 -
设计模式学习-门面模式,代理模式,适配器,中介者
设计模式学习-门面模式,代理模式,适配器,中介者四种模式接口隔离特点突出,可归结为接口隔离模式门面模式(Facade)定义为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更易使用(复用)通俗概括增加一个稳定的中间层,类似于在系统模块层面建立桥接,多是架构设计模式模式示意图代理模式(Proxy)定义为其他对象提供一种代理以控制(隔离接口)对这个对象的访问通俗概括为了安全,性能,分布式等考虑,加一个原创 2020-12-30 15:07:23 · 339 阅读 · 0 评论 -
设计模式学习-单例模式,享元模式
设计模式学习-单例模式,享元模式两种模式主要为了提高性能而设计,可归结为对象性能模式单例模式(Singleton)定义保证一个类仅有一个实例,并提供一个全局访问点。注意项将构造函数与拷贝构造函数设为似有,因为不设置会自动生成。实现方式饿汉式class 懒汉式普通版单锁双锁双锁+编译限制模式示意图抽象工厂(Abstract Factory)定义提供一个接口,让该接口负责创建一系列"相关或相互依赖的对象",无需指定他们具体的原创 2020-12-30 14:54:43 · 184 阅读 · 0 评论 -
设计模式学习-工厂模式,抽象工厂,原型模式,构建器
设计模式学习-工厂模式,抽象工厂,原型模式,构建器四种模式构建对象特点突出,可归结为对象创建模式工厂模式(Factory)定义定义一个用于创建对象的接口,让子类决定实例化,实例化延迟。通俗概括通过多态特性,让用户利用子类创建对象,达到某方法里与具体类解耦目的;主要解决“单个对象”需求变化,要求创建方法/参数相同模式示意图抽象工厂(Abstract Factory)定义提供一个接口,让该接口负责创建一系列"相关或相互依赖的对象",无需指定他们具体的类通原创 2020-12-24 16:58:09 · 288 阅读 · 1 评论 -
设计模式学习-装饰模式,桥接模式
设计模式学习-装饰模式,桥接模式两种模式职责特点突出,可归结为单一职责模式装饰模式(Decorato)定义动态(组合)地给一个对象增加额外职责,利用Decorator中间层扩展功能,更加灵活,减少冗余通俗概括组合优于继承,主体功能扩展,通过中间层抽象共有部分,构建通过组合来扩展功能的子类,解决了主体在多方向的功能扩展灵活性模式示意图桥接模式(Bridge)定义将基类中抽象部分与实现部分分离,使它们可以独立地变化通俗概括-通过组合关系,将抽象与实现原创 2020-12-23 18:52:24 · 255 阅读 · 0 评论 -
设计模式学习-模板方法,策略模式,观察者模式
设计模式学习-模板方法,策略模式,观察者模式三种模式协作特点突出,可归结为组件协作模式模板方法(Template Method)定义定义一个操作中算法的骨架,将一些步骤延迟到子类(虚函数,子类自实现),使子类复用一个算法结构,重新定义通俗概括利用多态性,将固定流程封装,利用多态性自定义变化点模式示意图策略模式(Strategy)定义定义一系列算法,封装起来,使得在独立于客户程序下可变通俗概括利用多态性,算法子类化,传不同对象计算不同算法,主要用原创 2020-12-22 17:37:30 · 195 阅读 · 0 评论 -
设计模型学习笔记-面向对象思想
设计模型学习笔记-面向对象思想记录李建忠老师设计模型课程学习与思考专栏面向对象:封装 继承 多态深层思想:1. 隔离变化:抽象 使得变化部分与稳定部分隔离2. 各司其职:各部分互不干扰,责任制3. 对象含义:语言上实现封装,规格上提供接口,概念上责任抽象八大设计原则1.依赖倒置原则(DIP)高层模块(稳定)不应依赖低层(变化),二者应依赖抽象(稳定)抽象不应依赖于实现细节,细节应依赖于抽象2.开放封闭原则(OCP)对扩展开放,对更改封闭类模块可扩展不可修改3.单一职原创 2020-12-21 15:11:21 · 122 阅读 · 0 评论