当前位置: 首页 > news >正文

做网站不挣钱公司网站的设计与实现

做网站不挣钱,公司网站的设计与实现,网上销售方法,wordpress仿百度搜索主题1.介绍 策略模式#xff08;Strategy Pattern#xff09;是一种行为型设计模式#xff0c;它定义了一系列算法#xff0c;封装每一个算法#xff0c;并使它们可以相互替换。策略模式使得算法的变化独立于使用算法的客户端。 2.主要作用 策略模式的主要作用是将算法或行为…1.介绍 策略模式Strategy Pattern是一种行为型设计模式它定义了一系列算法封装每一个算法并使它们可以相互替换。策略模式使得算法的变化独立于使用算法的客户端。 2.主要作用 策略模式的主要作用是将算法或行为的选择从使用者中分离出来使得可以在运行时选择不同的算法或行为。这种方式使得代码更加灵活、可扩展。 3.解决的问题 策略模式的主要作用是通过定义一系列算法使得它们可以相互替换从而达到以下几个目的 算法选择需要根据不同的条件选择不同的算法时可以使用策略模式避免复杂的条件语句。代码复用通过封装不同的策略减少代码重复提高可复用性。算法独立使得算法的变化独立于使用它的客户端便于扩展和维护 4.模式原理 包含角色 策略接口Strategy定义一系列算法的接口所有具体策略都需要实现这个接口。具体策略ConcreteStrategy实现策略接口的具体类每个具体策略实现不同的算法。上下文Context持有一个策略的引用提供选择和使用策略的功能通常允许在运行时改变所用策略。 UML类图 代码示例 使用策略模式来实现不同的排序算法。 // 策略接口 interface SortStrategy {void sort(int[] array); }// 具体策略快速排序 class QuickSort implements SortStrategy {public void sort(int[] array) {// 实现快速排序System.out.println(使用快速排序);} }// 具体策略冒泡排序 class BubbleSort implements SortStrategy {public void sort(int[] array) {// 实现冒泡排序System.out.println(使用冒泡排序);} }// 上下文 class SortContext {private SortStrategy strategy;public void setStrategy(SortStrategy strategy) {this.strategy strategy;}public void sort(int[] array) {strategy.sort(array);} }// 使用 public class StrategyPatternExample {public static void main(String[] args) {SortContext context new SortContext();int[] array {5, 2, 9, 1};context.setStrategy(new QuickSort());context.sort(array); // 输出使用快速排序context.setStrategy(new BubbleSort());context.sort(array); // 输出使用冒泡排序} } 策略模式结构不算复杂更容易理解在项目中使用的也比较多再举个我在项目中遇到的真实案例吧 当时做跑步机软件有个需求是需要显示心率值而心率的来源有多个比如心率手柄华为运动健康还有其他App他们之间还有优先级华为运动健康第一其他App第二心率手柄第三当三个心率源都有心率上报时需要根据优先级进行显示心率值而在获取心率值的时候 就只需在 策略模式所说的上下文 中get就行了无需关心内部实现至于策略动态切换以及其他相关逻辑都包含在了上下文中。 当然上述概念和举例只是帮助你快速理解策略模式以及在实际项目中遇到相应需求能想到它就可以了真实的需求实现肯定不会像示例中那么简单记得灵活运用。 5.优缺点 优点 灵活性允许在运行时根据需要切换算法。可扩展性新的算法可以很方便地加入到系统中无需修改原有的代码。避免条件语句策略模式避免了复杂的条件语句使代码更加清晰。 缺点 客户端必须了解不同的策略客户端需要理解不同策略之间的差异选择合适的策略。 6.应用场景 多种算法选择当需要根据不同条件选择不同算法时如排序、支付方式等。需要封装一系列的算法例如图形绘制中可以根据不同的图形类型选择不同的绘制策略。需要使用不同策略的对象例如系统中有多个对象需要使用不同的策略但又希望统一管理。 这时候你是不是突然想拿自己项目中的某些功能练手了各位不要随便为了设计而修改现有完善模块代码哈能跑就行 开个玩笑设计模式就是为了方便我们写出更容易维护更适合自己的代码的而不是为了设计而设计的。 还有还有 说到这了再提一嘴 硬编码和条件判断if…else 或 switch 大家在项目中写没写过 通过 if...else 或 switch 来选择不同的执行路径使用哪种算法哪种解析方式哪种网络请求… 这中if...else 或 switch选择方式我们叫做硬编码当条件足够多的时候看着很不美观维护难度也大恰恰这种类型的代码可以使用策略模式代替哦 7.总结 策略模式通过将算法封装为独立的策略类提供了一种灵活的方式来选择和使用算法。它提高了代码的可维护性和扩展性符合面向对象设计的基本原则。在需要动态选择算法和减少条件判断时策略模式是一种非常有效的解决方案。
http://www.sczhlp.com/news/191928/

相关文章:

  • 成都多语种网站建设河北廊坊做网站
  • 做图片网站用什么程序微网站公司
  • 聊城高端网站制作电子商务网站开发规划
  • 保定市网站建设做网站域名的成本
  • 枣庄市建设项目环评备案网站郑州seo排名优化
  • 用服务器做网站空间云谷系统网站开发
  • 六安网站制作android studio手机版下载
  • 狗狗和人做网站建设网站比较好的公司吗
  • 巩义网站优化公司网站空间商排名
  • 做旅游网站怎么做呀关键词查询工具软件
  • 做网站后台有前途吗在线网站seo优化
  • 显微镜厂家TOP10推荐:拓界光电以创新技术引领精密观测新时代
  • net中使用了垃圾回收机制(GC)功能
  • 2025 超景深三维显微镜厂家 TOP10 推荐:三维成像技术的行业应用标杆​
  • 音乐节奏跳动
  • CF2160 Codeforces Round 1058 (Div. 2) 游记
  • 哪个网站做网上旅社预定移动端网站开发 float
  • 网站网页转app源码网络营销热门岗位
  • SUPERW上海网站建设工作室线上商城推广软文
  • 网站开发后台数据怎么来溧阳 招网站开发兼职
  • 罗湖商城网站设计价格宝丰县精神文明建设的门户网站
  • 做企业网站开发哪家好微信小程序卖东西
  • 岳阳建设网站哪家好便宜的域名
  • 禅城区网站建站建设网页游戏网站4399
  • 网站发布信息的基本流程做软件用什么编程语言
  • asp婚纱摄影网站源码苏州城乡和住房建设局网站首页
  • wordpress加密php代码青岛网站建设seo优化
  • 各大网站推广平台seo新站如何快速排名
  • 自己如何做公司网站站长推荐自动跳转导航入口
  • 搞定设计网站做的图怎么下载不了网站设计素材网站大全