代理,就是需要代理类和被代理类有相同的对外接口或者说成服务,所以代理类一般都必须实现了所有被代理类已实现的接口,因为接口就是制定了一系列对外服务的标准。
正因为动态代理有这样灵活的特性,所以我们在设计动态代理类(DynamicProxy)时不用显式地让它实现与真实主题类(RealSubject)相同的接口(interface),而是把这种实现推迟到运行时。...
分类:
编程语言 时间:
2015-07-26 21:03:35
收藏:
0 评论:
0 赞:
0 阅读:
294
【基本语法】
VFL的语法为H:和V:开头,代表水平和垂直。
接下来如果要涉及距离,使用|-x-,x为距离的点数。
对于视图,用[ ]包围,例如[blueView]。
①下面的语句实现了blueView水平方向左右各距离控制器的边缘20点:
H:|-20-[blueView]-20|
②如果要指定宽高,在视图名称之后用圆括号内填入常量数值,下面的代码实现了blueView距离左边2...
分类:
编程语言 时间:
2015-07-26 21:03:25
收藏:
0 评论:
0 赞:
0 阅读:
279
什么是策略模式?
定义算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
策略模式有什么好处?
可以动态的改变对象的行为。
设计原则
1.封装变化(找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起)
2.多用组合,少用继承
3.针对接口编程,不针对实现编程
把一个类中经常改变或者将来可能改变的部分提取出来,...
分类:
编程语言 时间:
2015-07-26 21:02:35
收藏:
0 评论:
0 赞:
0 阅读:
201
3.将C++的标识符转成OC的标识符
C++的标识符和OC一样由数字字母下划线组成,打头的不是数字。当标识符超过一个单词,
C++采用全字母小写,单词间用下划线连接的书写规范,如:
bei_jing
OC采用除第一个单词外,其余单词首字母大写的书写规范,如:
beiJing
//传入C++标识符,返回OC标识符
*/
+ (NSString *)objcIdentifierFr...
分类:
编程语言 时间:
2015-07-26 21:02:15
收藏:
0 评论:
0 赞:
0 阅读:
285
/*
4 创建大量字典
传入两个数组,key和obj,数组元素个数未知。创建大量字典,字典的个数与key和obj中元素较少的一个数组的元素个数相同。key中第i个元素和obj中第i个元素组成键值对。所有字典添加到一个可变数组中,返回数组的地址。
*/
+ (NSArray *)createDictionariesWithKeys:(NSArray *)key andObjs:(NSArra...
分类:
编程语言 时间:
2015-07-26 21:02:05
收藏:
0 评论:
0 赞:
0 阅读:
276
原文转载:click here~~
匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名。匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。
-------等等,看得头大?那么请看下面的版本:
通过数代人的努力,你终于赶上了剩男剩女的大潮,假设你是一位光荣的新...
分类:
编程语言 时间:
2015-07-26 21:01:55
收藏:
0 评论:
0 赞:
0 阅读:
245
标签:二分图 最大匹配 最小集覆盖 匈牙利算法
1、二分图、最大匹配
什么是二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。
什么是匹配:把上图想象成3男4女搞对象...
分类:
编程语言 时间:
2015-07-26 21:01:25
收藏:
0 评论:
0 赞:
0 阅读:
259
什么是观察者模式?
观察者模式定义了对象之间的一对多依赖,当一个对象改变状态,其他依赖者都会收到通知并自动更新。
角色
抽象主题(Subject)角色
主题角色把所有对观察考对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。
抽象主题提供一个接口,可以增加和删除观察者对象,主题角色又叫做抽象被观察者(Observable)角色,一般用一个抽象类或者一个接口实现。...
分类:
编程语言 时间:
2015-07-26 21:00:55
收藏:
0 评论:
0 赞:
0 阅读:
211
java多线程并发——Exchanger 两个任务之间交换对象...
分类:
编程语言 时间:
2015-07-26 20:58:45
收藏:
0 评论:
0 赞:
0 阅读:
248
C++ STL中的map是非常常见的。通常我们用如下方式来遍历,并且删除map中的一些entry:map mp;
mp.insert(make_pair(1,1));
mp.insert(make_pair(2,3)); // insert some elements
for (map::iterator iter = mp.begin(); iter !=...
分类:
编程语言 时间:
2015-07-26 20:58:25
收藏:
0 评论:
0 赞:
0 阅读:
311
上面的代码启动两个线程,线程T1会占用少量CPU,线程T2会占满一个CPU。
那么如果找出代码中占用CPU较多的问题呢?
首先我们通过top列出进程,按照cpu使用率排序(shift + p)
可以看出出问题的进程号是30358
然后使用 top -H -p 30358 得到如下结果
这里可以看到线程为30371占用太多CPU,此线程有问题
接下来使用jstack ...
分类:
编程语言 时间:
2015-07-26 20:57:45
收藏:
0 评论:
0 赞:
0 阅读:
414
总结起来很简单:
1,对话框类型:消息,确认,选项,输入
2,选择图标:错误,信息,警告,问题,无或者自定义
3,选择消息:字符串,图标,自定义组件或者他们的集合
4,对于确认对话框,选择选项类型(默认,Yes/No,Yes/No/Cancel或者OK/Cancel)
5,对于选项对话框,选择选项(字符串,图表或者自定义组件)和默认选项
6.对于输入框,选择文本框或者输入框。...
分类:
编程语言 时间:
2015-07-26 20:57:15
收藏:
0 评论:
0 赞:
0 阅读:
230
模板Javascript中模板的核心概念是,将包含模板变量的HTML片段和Javascript对象做合并,把模板变量替换为对象中的属性值。书中讲到了几种库作为模板引擎,但是链接失效了,可以在这里下载,链接:jQuery.tmpl使用方式很简单,看一下它的说明就行了。给定一个模板,通过给它添加数据就能生成渲染好的元素节点,然后就可以将它添加到页面中,主要使用方法如://数据
var object =...
分类:
编程语言 时间:
2015-07-26 20:54:55
收藏:
0 评论:
0 赞:
0 阅读:
163
在Java编程语言中,嵌套了很多设计模式的思想,例如IO流中的缓冲流就使用到下面要介绍的装饰者设计模式。
示例代码:
* 抽象构件角色:定义一个抽象接口,来规范准备附加功能的类
* @author Admin
*
*/
public interface Drink { //被装饰者的基类
public String description();
pu...
分类:
编程语言 时间:
2015-07-26 20:53:55
收藏:
0 评论:
0 赞:
0 阅读:
114
首先我们一般求子串的位置的时候,我们可以使用这样的方法/*
*功能:这个是定长的串的顺序存储
*时间:2015年7月15日17:16:01
*文件:SString.h
*作者:cutter_point
*/#ifndef SSTRING_H
#define SSTRING_H#define MAXSTRLEN 255class SString
{
unsigned char* ch; //...
分类:
编程语言 时间:
2015-07-26 20:53:35
收藏:
0 评论:
0 赞:
0 阅读:
244
在Java类中声明属性、方法和内部类时,可使用关键字static作为修饰符,static标记的属性和方法可以由整个类进行共享,因此static修饰的属性称为类成员或者称为类方法;static修饰的方法称为类方法或者静态方法; static修饰的语句块在其所属的类中被载入JVM时被执行一次,一般...
分类:
编程语言 时间:
2015-07-26 20:48:45
收藏:
0 评论:
0 赞:
0 阅读:
252
可以直接使用:Map testMap = new HashMap() {{ put("test1", "test11"); put("test2", "test11");}}; 进行初始化。在网上查了下,这个是使用了匿名类的方式来进行初始化。第一层{}是匿名类的定义,第二层{}是初始化函数...
分类:
编程语言 时间:
2015-07-26 20:47:15
收藏:
0 评论:
0 赞:
0 阅读:
356
常用控件主要包括:静态文本框、编辑框、单选按钮、复选框、分组框、列表框、组合框、图片控件、列表控件、树形控件和进度条控件等等。本节教程先来讲解静态文本框的使用。控件的通知消息 在将静态文本框的使用之前,先大概讲讲控件的通知消息。当控件有事件发生时,它会向父窗口发送通知消息。最常发生的事件就是鼠标单击...
分类:
编程语言 时间:
2015-07-26 20:47:05
收藏:
0 评论:
0 赞:
0 阅读:
421
冒泡排序: 对数组的中的数据,依次比较相邻两数的大小。如果前面的数据大于后面的数据,就交换这两个数。时间复杂度O(n^2) 1 function bubble(array){ 2 var temp; 3 for(var i=0; iarr[j+1]){ 6 ...
分类:
编程语言 时间:
2015-07-26 20:46:15
收藏:
0 评论:
0 赞:
0 阅读:
426
的基本算法1 算法原理2 划分的实现过程高速排序算法的性能分析1最坏情况2 最好情况3 平均情况參考资料1. 基本算法1.1 算法原理高速排序是一种分治排序算法。它将数组划分为左右两个部分,然后分别对这两部分排序。关键在划分的过程中。它将重排数组,使的下面条件成立:对于某个划分元素指...
分类:
编程语言 时间:
2015-07-26 20:45:35
收藏:
0 评论:
0 赞:
0 阅读:
314