avatar
文章
102
标签
177
分类
29

首页
文章
标签
分类
架构师
友情链接
开往
CodeTime
搜索
首页
文章
标签
分类
架构师
友情链接
开往

CodeTime

命令模式(Command)
发表于2019-11-13|设计模式行为型模式
意图命令模式是一种行为型模式,它可将请求转换为一个包含与请求相关的所有信息的独立对象。该转换让你能根据不同的请求将方法参数化、延迟请求执行或将其放入队列中,且能实现可撤销操作。简单来说,命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。 问题假如你正在开发一款新的文字编辑器,当前的任务是创建一个包含多个按钮的工具栏,并让每个按钮对应编辑器的不同操作。你创建了一个非常简洁的按钮类,它不仅可用于生成工具栏上的按钮,还可用于生成各种对话框的通用按钮。 尽管所有按钮看上去都很相似,但它们可以完成不同的操作(打开、保存、打印和应用等)。你会在哪里放置这些按钮的点击处理代码呢?最简单的解决方案是在使用按钮的每个地方都创建大量的子类。这些子类中包含按钮点击后必须执行的代码。 你很快就意识到这种方式有严重缺陷。首先,你创建了大量的子类,当每次修改基类按钮时,你都有可能需要修改所有子类的代码。简单来说,GUI代码以一种拙劣的方式依赖于业务逻辑中的不稳定代码。 还有一个部分最难办。复制/粘贴文字等操作可能会在多个地方被调用。例如用户可以点击工具栏上小小的 “复制” 按钮,或者 ...
三数之和
发表于2019-11-11|算法
问题给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。LeetCode原题入口 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]] 思路如果简单采用暴力遍历的方式,时间复杂度为$ O(n^3) $,时间上肯定无法通过。可先对数组进行排序,时间复杂度为$ O(n\log n) $,接着从数组第一个数开始遍历,在剩下的数中取2数之和,正好等于第一个数的相反数,这样3者之和正好为0。设置第一个指针遍历数组,假设遍历到的当前数为x,则要找的2数之和target=-x,由于数组已经经过排序,后面2数可再用2个指针表示,1个指向第1个数的后一个数,也就是正好大于x的数,另1个指向数组最后一位,也就是最大的那个数。计算2个指针所指向数字之和,如果结果大于target,说明结果偏大,将第2个指针向左移动;如果结果小于target,将第1个指针向右移动,使 ...
1…1011
avatar
兜兜转转
自律是最好的修行
文章
102
标签
177
分类
29
最新文章
守护进程Supervisor2022-07-01
蓄水池抽样算法2022-06-14
CXXABI_1.3.8 not found2022-06-09
JVM参数配置及调优2022-06-05
Kafka快速入门2022-05-04
标签
动态规划Leetcode算法kubernetesk8sAI人工智能深度学习Tensorflow手写数字二叉树二叉搜索树平衡二叉树数据结构AVL回溯算法力扣背包问题广度优先遍历BFSB站电影下载m4s抓取读心术二分查找NginxSSLacme.sh免费https证书
归档
  • 七月 20221
  • 六月 20223
  • 五月 20221
  • 四月 20221
  • 二月 20221
  • 一月 20223
网站资讯
文章数目 :
102
已运行时间 :
本站总字数 :
294.8k
本站访客数 :
本站总访问量 :
©2019 - 2022 By 兜兜转转
本地搜索