首页 > 其他分享 >设计模式小结一策略(strategy)模式

设计模式小结一策略(strategy)模式

时间:2024-11-05 08:49:14浏览次数:5  
标签:策略 接口 strategy 算法 模式 设计模式 小结

先上结论:

        一个不懂设计模式的程序员,是绝对写不好程序代码的,心中没有设计模式的概念,你写出代码,内行一看就是个草台班子。这篇文章仅是个人设计模式学习的一篇笔记,算是抛砖引玉,详细的概念和用法还需要自己敲代码一个个验证体会。

开干!

一、程序设计的基本原则:

1、封装变化,找出可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起

2、针对接口编程而不是针对实现编程

3、多用组合少用继承

4、为了交互对象之间的松耦合设计而努力

5、类应该对拓展开放对修改关闭

6、要依赖抽象,不要依赖具体类,依赖倒置原则

7、变量不可用持有具体类的

8、最少知识原则,只和你的密友谈话

9、好莱坞原则---别调用我们(别给我打电话),我们会调用你(我会给你打电话)

10、一个类应该只有一个引起变化的原因

策略(strategy)模式:

它定义了一系列算法,并将每个算法封装起来,使它们可以互换。策略模式让算法的变化独立于使用算法的客户。

在策略模式中,通常包含以下几个角色:

  1. 抽象策略角色(Strategy):这是一个抽象类或接口,定义了所有具体策略类需要实现的算法或行为。它通常由一个接口或者抽象类实现,为所支持的算法声明了抽象方法。
  2. 具体策略角色(ConcreteStrategy):这些类

标签:策略,接口,strategy,算法,模式,设计模式,小结
From: https://blog.csdn.net/sunxingzhesunjinbiao/article/details/143476714

相关文章

  • 《图解设计模式》 第三部分 生成实例
    第五章Singleton模式单例模式应该是开发中用的比较多的模式。这里我只记一个知识点。多线程下安全的单例模式的一个知识点publicclassSingleton{publicstaticInstanceClassinstance=null;publicstaticSingletongetInstance(){if(instance==null){......
  • 《图解设计模式》 第一部分,适应设计模式
    第一章Iterator模式--一个一个遍历为什么要使用Iterator模式?正常遍历我们使用for循环即可,为什么要在集合引入Iterator这个角色呢?egwhile(it.hasNext()){Bookbook=(Book)it.next();System.out.println(book.getName());}这里的while循环并不依赖于Boo......
  • 微服务设计模式:节流模式(Throttling Pattern)
    微服务设计模式:节流模式(ThrottlingPattern)定义节流模式(ThrottlingPattern)是一种控制资源使用速率的设计模式,广泛应用于云计算和微服务架构中,以防止服务过载和资源耗尽。它通过限制客户端请求的数量,保证系统稳定性和可用性。结构节流模式的核心组件包括:请求过滤器:拦......
  • c#-设计模式之观察者模式
    c#-设计模式之观察者模式概念指多个对象之间存在一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。该模式又称为包括发布-订阅(Publish/Subscribe)模式,该模式是行为型模式。结构图角色Subject(观察目标):观察目标是指被观察的对象,一般......
  • 设计模式之——代理模式
    一、代理模式概述在C++中,代理模式是一种结构型设计模式,它为其他对象提供一种代理,从而控制对这个对象的访问。代理模式的作用主要体现在以下几个方面:职责清晰:真实的角色即实现实际的业务逻辑,不用关心其他非本职的事务,通过后期的代理来完成事务,使得编程简洁清晰。例如在视频......
  • 【设计模式系列】原型模式(十一)
    一、什么是原型模式原型模式(PrototypePattern)是一种创建型设计模式,它使得一个对象可以复制自身,从而创建一个与自己属性一致的新对象,而无需知晓对象创建的细节。这种模式允许动态地增加对象的数量,并通过复制现有的对象来提高效率,特别是当直接创建对象的代价较大时(例如,涉及复杂......
  • BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection阅读小结
    BEVDet4D:ExploitTemporalCuesinMulti-camera3DObjectDetectionBEVDet4D:在多相机三维目标检测中利用时间线索摘要背景:单帧数据包含有限信息,限制了基于视觉的多相机3D目标检测性能。BEVDet4D提出:提出BEVDet4D范式,将BEVDet从仅空间的3D扩展到时空4D工作空间。改进:通过......
  • 最近做题小结
    https://www.luogu.com.cn/problem/AT_abc376_d问是否含有节点1的环我一开始做成dfs找环了很明显时间过不去肯定超时的点击查看代码#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=1e6;intnums=1e15;intvis[N],pre[N];vecto......