自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wufeifan_learner的博客

大家一起学习,共同成长

  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 二十三种设计模式——外观模式

前页:设计模式总述当我们设计软件的时候,难免要分工合作。比如A开发服务器。B开发客户端。这种情况下,就有一个很常见的问题,A开发的服务器如何与B开发的客户端联系起来?一种方式就是,服务器端造好各种类,供客户端调用。这样,客户端不必知道服务器端如何实现的这些类和方法,也能使用到服务器提供的方法。举个例子,我们要吃饭,就要买材料,烧水,热锅,切菜,做菜,吃饭。但是如果我们去餐厅,想吃什么告诉服...

2019-04-30 16:50:16 150

原创 二十三种设计模式——原型模式

前页:设计模式总述我们在编程的时候,常常遇见这种情况:大量相同的类进行初始化,需要用到大量的构造函数。最基本的例子:while(count-- > 0){ String a = new String("asd");}这就是最简单的String类的构造函数。当我们频繁创建该对象时,会耗费资源且较耗时,因此,字这种情况下,java给出了一种方法,我们可以实现cloneab...

2019-04-29 17:09:55 454

原创 Java为什么要重写equals方法和hashcode方法(新手场)

这个得从盘古开天说起。(篇幅较长)java中“==”与equals方法的区别 hashcode方法 为什么java中在重写hashmap的时候要重写二者一、 java中“==”与equals方法的区别先看测试代码:public class TestHashMethod { public static void main(String[] args) { String a ...

2019-04-28 19:53:25 1246

原创 二十三种设计模式——适配器模式

前页:设计模式总述所谓适配器模式,就是连接两个不兼容的接口。想想手机适配器,手机可接受电压可不是220V,而家用电压是220V,这就需要适配器兼容二者,给手机充电。同理,适配器模式就如同此例。说来,适配器模式有三种:类适配器 对象适配器 接口适配器实现适配器模式需要哪几种角色呢?很简单:目标角色(插座),源角色(手机),适配器角色(适配器)假设,我现在有一个手机,是typ...

2019-04-24 10:28:41 165

原创 对swift开发中的unwinding segue的一些理解

swift是比较小众的开发语言,与苹果系列的APP对应。此外,swift还是一门新生的语言,因此,在swift学习的道路上,没有很多前辈帮忙采坑,我们在学习的时候必须长期总结积累经验。在一个小项目中,我就被swift的unwinding segue搞糊涂了。情况是这样的:这个小程序写完后,效果应该是像记事本一样。可是当我点击tableView的时候,他会在后面附加值,而不是去...

2019-04-23 21:58:20 323

原创 二十三种设计模式——观察者模式

二十三种设计模式总述当对象间存在依赖关系时,使用观察者模式进行通知其依赖项。比如:C++中的虚函数的实现。当子类重写了虚函数的时候,其虚函数表中该虚函数的的地址就会改变。但是,这不是典型的观察者模式,因为编译器知道地址的改变,但是父类并不知道。实际上,应该是父类的对象发生改变,子类的观察者也会被通知到,这就是观察者模式。举个生活中的例子。老师给学生上课,学生去上课,老师就是被观察者,老师讲...

2019-04-23 09:34:43 193

原创 二十三种设计模式——建造者模式

前页:设计模式总述建造者模式(Builder Pattern),是通过对对象一个一个创建,最终构成一个复杂的对象。我们在做开发的时候,有时候会面临很复杂的一个对象,怎么办?那就先不考虑那么复杂的情况,从简单的对象逐步构建。比如造房子的时候,我们不需要一下造出来摩天大楼,但是我们可以从地基开始,一层一层楼盖,最终建造成摩天大厦。再比如,被熟知的KFC套餐,你可以买“可乐+牛肉堡”套餐A,...

2019-04-18 10:38:15 191

原创 二十三种设计模式——单例模式

前页:设计模式总述单例模式是java中最简单的一种设计模式。所谓单例模式,就是整个程序只允许有一个类的实例,并且向整个系统中提供此事例。有点像C++中被定义为static的变量。比如当我们某个程序只有一个关于打印机的端口,那么我们必须将这个端口设计为单例的,因为如果当多台电脑使用这个打印机的时候,只允许第一台电脑对此进行操作,否则打印机将引起混乱,单例模式特点单例类只能有一个实例。...

2019-04-16 17:10:09 181

原创 二十三种设计模式——抽象工厂模式

上页:设计模式总述我们之前知道了什么是工厂模式,简言之,就是根据参数不同利用不同的类创建不同的对象。实际上,抽象工厂模式和工厂模式相似,只不过是这个工厂中除了生产某种商品,还会生产另一种商品。举个例子:越南代工厂是Nike,Adidas两个工厂的球鞋生产地。现在我们假设球鞋除了品牌都是一样的,那么Nike,Adidas就是工厂类,而越南代工厂就是Nike,Adidas的基类,球鞋...

2019-04-16 14:16:25 106

原创 二十三种设计模式——工厂模式

前页:二十三种设计模式总说工厂模式(Factory Pattern):创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。每次看定义的时候都是一头雾水,实际上就是类似于函数的重载而已。通过菜鸟教程,总结出使用工厂模式的几种方法:实现接口。C++中没有接口这个概念,C++中接口的实现是通过抽象类完成的。如果不知道什么是抽象类,请看:抽象类与纯虚函数。...

2019-04-15 16:47:28 162

原创 二十三种设计模式

设计模式,没听过的人肯定一脸懵逼,正如我最初被问到这个问题一样。我最开始一个都答不上来,所以立志总结23种设计模式。什么是设计模式?设计模式就是利用前人的经验,总结出的可以被反复使用、多数人知晓、经过分类的、代码设计的总结。使用设计模式设计程序有什么好处?提升代码可重用性。 提升代码可靠性。 提升代码的可读性。实际上,设计模式正如一个代工厂,操作员不必理解如何制造工厂中的机...

2019-04-15 15:03:19 186

原创 swift方法performSegue(withIdentifier identifier: String, sender: Any?)

在学习swift开发的路上,做个性格测试的app,结果有一个方法没见过,导致出错很久没发现错误原因。现在回头分析一下这个方法,供自己和他人参考学习。func nextQuestion(){ questionIndex += 1 if questionIndex < questions.count { updateUI() ...

2019-04-08 16:49:45 3100

原创 swift关键字as,as!,as?

在学习swift开发,其中有许多在其他语言中没见过的东西,比如关键字as。 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "ResultsSegue" { let resultsViewContro...

2019-04-07 21:16:16 3558

原创 简述虚函数表

前段时间我在博客中简单地说了下C++的虚函数,所谓虚函数,就是C++实现多态性的方法。那么编译器是如何识别虚函数的呢?据百度百科描述,C++并未规定用何种方法实现虚函数,但是大部分编译器厂商都选择使用虚函数表这种方法,那到底什么是虚函数表???虚函数表,称为V-Table。虚函数表是一片连续的内存区域,每个内存单元存放着JMP指令地址。看到这里,可能会比较懵逼,啥是内存单元,啥是JM...

2019-04-04 18:00:28 6245 5

原创 深拷贝与浅拷贝

前面说到了拷贝构造函数,但是情况并未列举完。我怕文章太长就分开写,看的舒服。有一种情况,那就是当构造函数中有指针操作,怎么办?#include <iostream>using namespace std;class A{private: int *a;public: A(){ a = new int[100]; cout...

2019-04-03 09:08:28 788 5

原创 构造函数与拷贝构造函数

拷贝构造函数和构造函数不能分开说,他们都是初始化对象的一种方法。但是我们这里用构造函数辅助说明拷贝构造函数,主要说说拷贝构造函数的声明,用途和使用注意事项。众所周知,构造函数是一个初始化类对象的函数,即使不显示调用,编译器也会隐式调用构造函数初始化类对象。同样的,拷贝构造函数是一种特殊的构造函数,目的也是初始化类对象,同样在不声明的情况下也会隐式调用该函数。而隐式调用拷贝构造函数的时候,我们称...

2019-04-03 09:07:15 8540 2

原创 堆栈-操作系统(二)

接上文。这篇文章没有涉及到最根本的原理,只是浅谈。毕竟只是记问之学,没有深入研究过,做此章供大家参考。上文我们提到了栈和堆存放不同类型的变量,但是有部分问题仍未解决。这篇文章将简说内存分配的其他空间。代码段:存放代码的空间,这里的代码指的是二进制代码。比如你写了一个hello world的程序,总得有一个地方存放这段程序,而普通c语言代码存放在磁盘中,可是经过编译链接后的代码存放在哪...

2019-04-02 08:45:28 796 1

原创 堆栈-操作系统(一)

很早就想写一篇文章,关于操作系统中的堆栈。说是堆栈,其实就是操作系统如何处理代码的,即如何为代码中的各种类型的变量、常量、方法体(函数体)等等分配内存空间。了解这些内容,可以帮助我们做一些判断:帮助我们在程序出错时更快找到错误地点。 帮助们尽可能利用效率高的方式编程。接下来开始浅析操作系统中的堆栈。堆:由程序员申请的一片数据区域,并在程序执行完之前由程序员手动释放。类似于链表结...

2019-04-01 18:32:44 1889 1

RBTree.rar

红黑树 java 免费 但不保证正确性

2021-01-08

self_trian_cascade.rar

里面有训练所需的全部资源,如opencv_createsamples、opencv_traincascade、opencv_world343.dll和所需图片。

2020-04-04

空空如也

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

TA关注的人

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