自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

冯Jungle的个人博客

你清澈又神秘,在贝加尔湖畔

  • 博客(21)
  • 资源 (10)
  • 问答 (2)
  • 收藏
  • 关注

原创 作为程序员的你,必须要知道命令模式~

还记得Jungle曾经设计的Qt图片浏览器吗?鼠标点击“上一张”,浏览上一张图片;点击“下一张”,浏览下一张图片;点击“自动播放”,则自动从上到下播放每一张图片。是不是很有趣的一个小程序?鼠标点击某个键,就好像用户在向图片浏览器发送指令,图片浏览器内部接收到指令后开始调用相应的函数,最终结果是播放上一张或下一张图片,即执行或响应了用户发出的命令。客户并不知道发出的命令是什么形式,也不知道图...

2019-10-30 08:15:11 4262 2

原创 “欲戴王冠,必承其重”——深度解析职责链模式

应项目需求,公司安排Jungle去成都出差一段时间。这不,Jungle刚结束出差生活,回到公司准备报销。算了一下,Jungle一共有大概50万的一笔小额票据需要报销。按照公司规定,Jungle得先去找自己的组长签字。组长一看,“啧啧啧,我只能处理10万金额以下的报销,你这单子我签个字,你还得找兵哥(主管)签字”,于是Jungle又跑去找兵哥。兵哥看了,“啧啧啧,我最多只能管金额不超过30...

2019-10-29 08:28:46 3892 2

原创 双十一天猫购物找代理?先学会代理模式

“代理”这个词不陌生吧?买化妆品、买奶粉、买包包,都可以通过代理代购,甚至有专门的代购网站;或者要购置一些自己不太清楚原理好坏的物品,可以找相关代理负责帮忙购买,当然了,得支付一定费用。在软件设计模式中,也有一种模式可以提供与代购网站类似的功能。当客户端不能或者不便直接访问一个对象时,可以通过一个称为“代理”的第三方来间接访问,这样的设计模式称为代理模式。1.代理模式简介代...

2019-10-28 08:09:36 4468 4

原创 细粒度对象的大面积复用~——实例分析享元模式

知道围棋吗?不会下围棋那总见过吧?四四方方的棋盘上,白色棋子和黑色棋子分布在棋盘的各个位置上。棋子与棋子之间的区别是什么?除了颜色和位置,好像没什么不同了吧!也就是说,每个棋子对象的大部分状态都是一样的(形状、材料、质地等)。如果我们要设计一个程序来实现下围棋的功能,该如何来创建或者表示这上百个棋子对象呢?类似的,你想输入一段英文段落,无论每个单词再长再复杂,也无非都是由26个字母...

2019-10-27 15:56:32 3778 4

原创 如何吃到回锅肉?找厨师啊——外观模式实例解析

好不容易盼到周末啦!Jungle想吃点好的犒劳自己!吃什么呢?回锅肉!是的,吃回锅肉!可是这过程好麻烦啊,先得去市场里买肉,买回来得洗好,然后切好,再炒肉,最后才能吃上!不仅过程繁杂,而且Jungle还得跟市场、厨房打交道,想想都头大。如果有个厨师就好了,Jungle直接告诉厨师“我要吃回锅肉”,20分钟后厨师直接端上来就开吃。而中间那些买肉洗肉切肉的过程Jungle统统不关心了,而且J...

2019-10-26 15:42:35 3710 3

原创 人靠衣装,美靠靓装——装饰模式,教你成为最靓的仔~

成都的气温说降就降啊!还没立冬呢,温度骤然下降,只有10度了。扛不住了,Jungle要穿一件毛衣!额,出门还是很冷!那再带个围巾!天,上半身不冷了,下半身还那么冷~~~穿上秋裤!出门前想了想,这种天气骑摩拜单车一定吹着手冷,于是Jungle又带上了手套……看到了吗,天冷了,Jungle想加什么衣裤即加什么衣裤,各种装饰让Jungle不再感到寒冷。不过,不管Jungle穿再多衣服,...

2019-10-25 00:00:06 5184 7

原创 逆袭成为主管和高级经理——组合模式

今天Jungle又是被压榨的一天:同事让帮忙做个测试,一测就是一上午;主管叫去开会,尽管他是三级主管,但也是Jungle的主管呀!更磨人的在后头:Jungle由于项目需要,要申请某个IT权限,需要三级主管、二级主管、成都区总经理层层批复……这公司哟,简直就像一棵树,Jungle只是一片绿叶,绿叶前面有树枝,树枝前面还有树枝,直到树的躯干……Jungle何时才能成为大树枝呢?这一...

2019-10-24 08:31:34 6151 3

原创 号称最难理解的设计模式,只需看这篇解析——桥接模式

Jungle有两个手机,分别是M手机和N手机,M手机上有游戏Game1,N手机上有Game2。每次Jungle想玩Game1时,就使用M手机,想玩Game2时,就玩N手机。要是某天Jungle外出,心情大好,两个游戏都想玩,那Jungle还得带上两个手机???麻不麻烦?如果新出一个游戏Game3,那Jungle是不是要再买一个手机呢?同样都是游戏软件,为什么不把所有游戏都装到一个手机上呢...

2019-10-23 22:17:41 5970 7

原创 代码还可以这么复用——适配器模式

你一定听过“网络适配器”吧?又叫网卡。它的作用是什么呢?——上网!这样的回答显然不够专业,正确的答案是“网卡的一个重要功能就是要进行串行/并行转换。因为网卡和局域网之间的通信是通过电缆或双绞线以串行传输方式进行,而网卡和计算机之间通信则是通过计算机主板上的I/O总线以并行传输方式进行。”你肯定要问:“这和我有什么关系?”当然有了,因为你正在学习设计模式,而这就跟本文即将要介绍的适配器...

2019-10-22 08:22:36 7000 11

原创 “天上天下,唯我独尊”——单例模式

你能在电脑上调出两个Windows任务管理器吗?假设能,如果两个管理器显示的数据相同,那何必要存在两个呢?如果两个管理器显示的数据不同,那我该相信哪一个呢?试试看,应该有且仅有一个吧?一个系统里有且仅有一个Windows任务管理器实例供外界访问 。如何保证系统里有且仅有一个实例对象呢?并且能够供外界访问?你可以在系统里定义一个统一的全局变量,但这并不能防止创建多个对象(想一想,为什...

2019-10-20 18:46:58 11026 13

原创 克隆以后我就成了你——探究原型模式

孙悟空拔一根毫毛就可以变出好多一模一样的孙悟空!!!中国的克隆技术其实是世界领先的!即便Jungle读书少,Jungle也清晰地记得中学生物课本上提到过的克隆羊“多利”。虽然多利寿命不长,但它的出现对“克隆(Clone)”技术意义重大。克隆,直观说就是从原有生物体上取体细胞,然后无性繁殖出有完全相同基因的个体或种群。这么说来中国的克隆技术其实是世界领先的,因为孙悟空拔一根毫毛变出许多一模一...

2019-10-19 22:32:00 6503 20

原创 建一栋房子总共分几步?建造者模式告诉你答案~

“把大象装冰箱,总共分几步?”“三步。第一步,打开冰箱门;第二步,把大象装进冰箱;第三步,把冰箱门关上。”Jungle活了这20多年,全靠这个笑话活着! 把大象装冰箱竟然只需要三步?那到底是怎么把大象装进冰箱呢?你问我,我问谁?再说,我也不关心这个呀!这……来点实际的吧,如果Jungle要建一栋房子,总共分几步?本文的建造者模式将声情并茂地向您娓娓道来……1.建造者模式简介建造...

2019-10-19 15:47:43 9737 17

原创 工厂搬砖也要带脑壳 ~ Jungle学抽象工厂模式

回顾之前的设计模式,简单工厂模式所有逻辑都封装在工厂类中,工厂根据客户提供的产品名字创建对应产品的对象实例;工厂方法模式将产品的创建过程放到了具体工厂类中,每一个工厂可以创建一个具体产品,由此可能会创建许多工厂类。很多时候,一个工厂不只是生产一种产品,而是生产一类产品,比如一个体育用品工厂,可以生产篮球、足球、排球等多种产品。此时我们可以把这些相关的产品归纳为一个“产品族”,由同一个工厂来生产,这...

2019-10-19 09:28:41 9346 4

原创 不知道工厂方法模式?你可能真的应该去工厂~

设计模式系列文章:设计模式——设计模式概述设计模式(二)——UML类图介绍设计模式(三)——面向对象设计原则设计模式(四)——简单工厂模式源码和资料地址:https://github.com/FengJungle/DesignPattern在介绍简单工厂方法模式时Jungle总结出简单工厂模式存在最大的问题是违背了“开闭原则”,每当增加新的产品时,需要修改工厂类的逻辑。为了...

2019-10-18 07:32:09 11808 16

原创 再不学简单工厂模式,就真的要去工厂搬砖啦~

设计模式系列文章:设计模式——设计模式概述设计模式(二)——UML类图介绍设计模式(三)——面向对象设计原则源码和资料地址:https://github.com/FengJungle/DesignPattern从本文开始,Jungle将开始一一整理介绍23种设计模式。1.简单工厂模式简介创建型模式关注对象的创建过程,在软件开发中应用非常广泛。创建型模式描述如何将对象的创...

2019-10-17 22:11:13 17032 23

原创 设计模式(三)——面向对象设计原则

设计模式需要遵循基本的软件设计原则。可维护性(Maintainability)和可复用性(Reusability)是衡量软件质量的重要的两个属性:可维护性:软件能够被理解、改正、适应及扩展的难易程度 可复用性:软件能够被复用的难易程度面向对象设计的原则是支持可维护性复用,一方面需要实现设计方案或代码的复用,另一方面要保证系统易于扩展和修改,具有良好的可维护性。面向对象设计原则蕴含在各个设计...

2019-10-16 22:32:17 10577 5

原创 设计模式(二)——UML类图介绍

在正式介绍设计模式之前,我们有必要学习一下UML类图,因为我们需要一种直观的表示方法来描述设计模式,这种方法即是UML类图。在Jungle之前的一篇博客里,已经介绍到UML类图UML类图关系与符号简介。这里,不妨我们再次学习一遍。1.UML是什么?UML-Unified Model Language统一建模语言,是在开发阶段,说明、可视化、构建和书写一个面向对象软件的开放方法。统一建模语...

2019-10-16 00:08:03 19461 5

原创 设计模式——设计模式概述

软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。设计模式主要是为了解决某类重复出现的问题而出现的一套成功或有效的解决方案。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。1.设计模式由来软件设计模式源自于建筑学。积淀了几千年的建筑学工...

2019-10-12 21:04:29 22640 9

原创 [LeetCode]75.颜色分类——题解(执行用时击败90% ,内存消耗击败 78%)

1.题目描述给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]2.分析显然,最直观的方法是通过一次...

2019-10-09 23:58:04 272

原创 Qt设计机器人仿真控制器——按键控制机器人关节转动

1.引言及本文简介在上两篇博客里,Jungle介绍了Qt键盘事件,并在小程序中应用Qt键盘事件监测按键输入:Qt键盘事件(一)——检测按键输入及解决无法响应方向键问题 Qt键盘事件(二)——长按按键反复触发event事件问题解决在之前的一篇博客(Qt设计机器人仿真控制器)Jungle结合Qt和Coin3D设计实现了机器人仿真控制器,鼠标拖拽控制器界面6个轴的滑条,分别控制机器人6个关节...

2019-10-01 19:54:29 3204 5

原创 Qt键盘事件(二)——长按按键反复触发event事件问题解决

1.问题描述在Jungle的上一篇文章中(Qt键盘事件(一)——检测按键输入及解决无法响应方向键问题),Jungle简单实现了利用qt检测用户按键操作并将键按下\释放操作打印在Qt界面上的一个小程序。但是在测试过程中会出现一个现象,那就是长按某个键不放,界面一直在刷新press、release、press、release……(如下图)也就是说,在长按某个键不释放的情况下,keyPres...

2019-10-01 16:37:01 9846 29

Qt5+Coin3D仿真6轴工业机器人视频教程

1. 简介:Qt5+Coin3D实现简易版本的6自由度工业机器人建模仿真软件,鼠标拖动6个按钮可以分别控制6个轴转动。 2. 教程分为8个视频,每个视频长度不超过10分钟,基本涵盖介绍背景、Coin3D基础知识、Qt软件界面设计、工业机器人基础知识和参考文章,以及最后的编码实现。

2022-03-02

Qt实现客户端与服务器消息发送与文件传输

客户端与服务器之间的数据传送在很多案例场景里都会有应用。这里Jungle用Qt来简单设计实现一个场景,即: ①两端:服务器QtServer和客户端QtClient ②功能:服务端连接客户端,两者能够互相发送消息,传送文件,并且显示文件传送进度。 环境:VS2008+Qt4.8.6+Qt设计师

2018-12-03

C语言实现通讯录

C语言实现的通讯录,采用链表实现,具有浏览、增加联系人、删除联系人、修改联系人信息、清空通讯录等功能。

2018-07-22

OpenInventor实现索引线集管理

- 通过界面输入三维坐标(x,y,z),添加到轨迹列表和场景中 - 鼠标选择列表里的某条轨迹,可以在场景里高亮显示该路径 - 通过轨迹列表可以删除轨迹

2018-05-22

Qt图片浏览器

用Qt来设计一个图片浏览器,实现以下功能: ①浏览电脑里的文件夹,将当前文件夹下的图片列表罗列出来; ②鼠标点击列表上的某一张图片,图片将显示出来; ③可以控制浏览当前图片的上一张和下一张; ④实现自动播放的开始和停止控制。

2018-05-05

Qt-C++实现文件浏览器

用Qt来实现这么一个文件浏览器,实现以下功能: 1.可以显示指定目录下的文件列表; 2.鼠标双击文件列表里的文件夹,可以进入其子文件夹,也可返回上一级。

2018-04-29

C语言--成绩管理系统

C语言实现的学生成绩管理系统,插入、修改、删除学生各个课程的成绩,打印成绩单,查询成绩排名等功能。

2017-12-29

Coin3D+Qt+C++碰撞检测

环境:Qt4.8.6+VS2008+Coin3D3.1.3 语言:C++ 功能:检测两个物体之间的碰撞并打印出来;用户通过按钮可以控制是否进行检测。

2017-12-28

C实现任意阶矩阵求逆矩阵

C语言实现任意阶数的矩阵求逆矩阵运算,将结果输出到控制台。 在该程序中,将参与运算的矩阵的阶数用变量n代替。对于不同阶数的矩阵的运算,修改该n变量即可。

2017-12-14

OpenInventor实现模型拖动

OpenInventor和C++开发,实现了在三维场景里,鼠标拖动模型并可以进行旋转等操作。

2017-12-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除