<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bolange的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bolange</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bolange]]></copyright><item><title><![CDATA[iPad界面设计基本规范]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83760927</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83760927</guid><author>bolange</author><pubDate>Mon, 08 Nov 2010 17:48:25 +0800</pubDate><description><![CDATA[ 平台特点1 大屏幕，分辨率 1024x7682 再次强调没有固定的方向，必须四个方向都支持。3 可以外接键盘4 可以放置设备，与台式机同步iPhone与iPad的共同特点- 内存有限- 同时运行单个程序- 在设置功能里放置程序选项- 设备方向可以改变- 最小化的帮助，让用户直接就能看懂- 程序响应手势而不是鼠标- 运行源生程序、Web程序或者二者兼备- 图片深度24位(RGB各8位)，另带8位a...]]></description><category></category></item><item><title><![CDATA[Xcode shortcut key]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83760101</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83760101</guid><author>bolange</author><pubDate>Sat, 06 Nov 2010 16:40:06 +0800</pubDate><description><![CDATA[        

总的来说Xcode快捷键并不是非常丰富灵活，但熟悉了下面为数不多的几个快捷键以后工作效率马上可以提高不少。Command相当于pc键盘的win键，Option相当于Alt，
Control相当于Ctrl，键值一样，系统偏好设置里面可以更改。







Control-/ or Tab
: 切换到下一个占位符（自动完成的时候）


Control-...]]></description><category></category></item><item><title><![CDATA[观察者模式（Observer）]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83724596</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83724596</guid><author>bolange</author><pubDate>Mon, 27 Sep 2010 15:25:16 +0800</pubDate><description><![CDATA[        用户通常通过调用对象的方法来收集该对象的信息。但是当这个对象发生变化的时候，就会出现这样的一个问题：依赖该对象的用户如何才能知道对象的信息已经发生了变化？
        我们可能通过这样一种设计：创建一个对象，每当用户所关心的对象某个方面发生变化的时候，该对象负责通知相关对此消息感兴趣的用户。这种设计的问题在于只有用户自己才知道他关心的某对象的哪些方面，因而这个受关注的对象不应...]]></description><category></category></item><item><title><![CDATA[工厂模式（Factory）]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83724590</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83724590</guid><author>bolange</author><pubDate>Mon, 27 Sep 2010 15:19:26 +0800</pubDate><description><![CDATA[        在开发中其实我们已经不知道用到了设计模式中的很多模式 ，只是有些我们还未知它具体是哪种模式来着。如工厂模式，单例，适配，外观模式等一些常见模式。
        
1.工厂模式
 
        1)简单工厂模式(simple factory)
        也叫静态工厂模式,一般是具体产品的继承类或者是接口的实现，如下拿一个司机开多种车的例子。
    

...]]></description><category></category></item><item><title><![CDATA[装饰模式（Decorator）]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83724589</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83724589</guid><author>bolange</author><pubDate>Mon, 27 Sep 2010 15:17:34 +0800</pubDate><description><![CDATA[        为了扩展代码库，通常给它添加新类或者新方法。有时候，你也许不希望在运行时候使用新行为来组合对象。Interpreter模式允许你组合可执行对象，这个对象的行为可能变化会非常快。在有些情况下，你也许需要行为上的小变化，并且希望能够把这些变化事例起来，decorator模式可以满足这个需求。
 
        Decorator的意图就是在运行时组合操作的新变化
 
    ...]]></description><category></category></item><item><title><![CDATA[观察者模式（Observer）]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83724583</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83724583</guid><author>bolange</author><pubDate>Mon, 27 Sep 2010 15:14:03 +0800</pubDate><description><![CDATA[        用户通常通过调用对象的方法来收集该对象的信息。但是当这个对象发生变化的时候，就会出现这样的一个问题：依赖该对象的用户如何才能知道对象的信息已经发生了变化？
        我们可能通过这样一种设计：创建一个对象，每当用户所关心的对象某个方面发生变化的时候，该对象负责通知相关对此消息感兴趣的用户。这种设计的问题在于只有用户自己才知道他关心的某对象的哪些方面，因而这个受关注的对象不应...]]></description><category></category></item><item><title><![CDATA[策略模式（Strategy）]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83724576</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83724576</guid><author>bolange</author><pubDate>Mon, 27 Sep 2010 15:09:08 +0800</pubDate><description><![CDATA[java设计模式 写道
      策略模式在在给定的输入条件下，实现某个目标的计划或者方案。策略与算法类似；算法是定义好的过程，它能够提供一组输入产生一个输出。而策略是一个计划，它也涉及如何从一组输入到一组输出。在通常情况之下，与算法相比，策略是能够提供更大范围的可选方案。因而，策略通常是代表一组或一簇相互替换的方案。 当计算机程序存在多种策略时，程序代码会比较复杂。当有多个策略可用时，与策略...]]></description><category></category></item><item><title><![CDATA[面向对象的设计原则]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83724459</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83724459</guid><author>bolange</author><pubDate>Mon, 27 Sep 2010 12:10:58 +0800</pubDate><description><![CDATA[  索引
  1. SRP（单一职责原则）
  2. OCP（开-闭原则）
  3. LSP（里氏替换原则）
  4. DIP（依赖倒置原则）
  5. ISP（接口隔离）
  6. LoD（迪米特法则）
 
1. SRP（单一职责原则） 
        定义：就一个类而言，应该仅有一个引起它变化的原因。        好处：提高内聚，降低耦合。        缺点：造成资源文...]]></description><category></category></item><item><title><![CDATA[基础数据结构——图]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83712113</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83712113</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 15:49:03 +0800</pubDate><description><![CDATA[      图(Graph)G由两个集合V(Vertex)和E(Edge)组成,记为G=(V,E),其中V是顶点的有限集合,记为V(G),E是连接V中两个不同顶点(顶点对)的边的有限集合,记为E(G)。 图一般可以采用三种方式来表示：使用一个二维数组；使用邻接表；使用边数组。图的遍历一般有深度优先的方式和广度优先的方式。       所谓深度优先：从图中某个初始顶点v出发,首先访问初始顶点v,然后...]]></description><category></category></item><item><title><![CDATA[基础数据结构——树]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83712110</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83712110</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 15:48:05 +0800</pubDate><description><![CDATA[      树：T＝{K,R}。K是包含n个结点的有穷集合(n&amp;gt;0),关系R满足以下条件:        (1)有且仅有一个结点k0∈K,它对于关系R来说没有前驱结点,结点k0称作树的根。        (2)除结点k0外,K中的每个结点对于关系R来说都有且仅有一个前驱结点。        (3)K中每个结点对于关系R来说可以有多个后继结点。       我这里主要讨论的是二叉树，因为这个是...]]></description><category></category></item><item><title><![CDATA[基础数据结构——栈和队列]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83712098</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83712098</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 15:40:12 +0800</pubDate><description><![CDATA[      所谓的栈，是一个含有至少两个基本操作的抽象数据类型：插入新的元素；删除最近时间插入的元素。遵循FILO（First in，last out，先进后出）的原则。       所谓的队列，也是一个含有至少两个基本操作的抽象数据类型：插入新的元素；删除最久时间插入的元素。遵循FIFO（First in，first out，先进先出）的原则。       关于栈和队列的具体实现，我们即可以...]]></description><category></category></item><item><title><![CDATA[基本数据结构——数组和链表]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83712095</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83712095</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 15:38:12 +0800</pubDate><description><![CDATA[      数组的这个可以说是大家最广泛使用的数据结构了。数组的最主要的特点是可以支持随机存取，也就是说，我们查询一个值时，可以在O(1)时间内完成。如果我们在数组中删除一个元素，一般都是把后面元素向前移动，返回被删除的元素，如果插入一个新元素，我们把元素向后移动，留出一个空位，插入新元素。可见，删除和插入的时间复杂度为O(n)。       数组的特点是，我们在使用时需要先指定空间的大小（其实，...]]></description><category></category></item><item><title><![CDATA[集合框架——Map]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83712085</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83712085</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 15:28:21 +0800</pubDate><description><![CDATA[      Map集合为映射类型，映射与集和列表有明显的区别，映射中的每个对象都是成对存在的。映射中存储的每个对象都有一个相应的键（Key）对象，在检索对象时必须通过相应的键对象来获取值（value）对象，类似于在字典中查找单词一样，因此要求键对象必须是惟一的。键对象还决定了存储对象在映射中的存储位置，但并不是键对象本身决定的，需要通过一种散列技术进行处理，从而产生一个被称作散列码的整数值，散列码...]]></description><category></category></item><item><title><![CDATA[集合框架——Set]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83712072</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83712072</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 15:19:10 +0800</pubDate><description><![CDATA[      Set集合为集类型，集是最简单的一种集合，存放于集中的对象不按特定方式排序，只是简单地把对象加入集合中，类似于向口袋里放东西。对集中存在的对象的访问和操作是通过对象的引用进行的，因此在集中不能存放重复对象。Set集合包括Set接口以及Set接口的所有实现类。因为Set接口继承了Collection接口，所以Set接口拥有Collection接口提供的所有常用方法。 
1. 使用Has...]]></description><category></category></item><item><title><![CDATA[集合框架——List]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83712067</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83712067</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 15:16:05 +0800</pubDate><description><![CDATA[      List集合为列表类型，列表的主要特征是存放其中的对象以线性方式存储，没有特定的顺序，只有一个开头和结尾，当然，它与根本没有顺序的集类型时不同的。 
1. List集合的用法       List集合包括List接口以及List接口的所有实现类。因为List接口继承了Collection接口，所以List接口拥有Collection接口提供的所有常用方法，又因为List是列表类型，所...]]></description><category></category></item><item><title><![CDATA[集合框架——Collection]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83712060</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83712060</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 15:12:29 +0800</pubDate><description><![CDATA[      Collection接口是List接口和Set接口的父接口，通常情况下不被直接使用，不过Collection接口中定义了一些通用的方法，通过这些方法可以实现对集合的基本操作，因为List接口和Set接口继承了Collection接口，所以这些方法对List集合和Set集合是通用的，Collection接口定义的常用方法及功能如下表1所示： 

1. addAll(Collectio...]]></description><category></category></item><item><title><![CDATA[Object]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83711963</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83711963</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 12:09:20 +0800</pubDate><description><![CDATA[
java.lang.Object类是所有Java类的最高层次父类，该类中没有定义任何属性，方法也只有几个，但正是这些方法提供了面向对象编程技术的基本机制，下面将分别介绍： 1、hashCode()方法 hashCode()方法的格式如下： 



Java代码 



public int hashCode()  


public int hashCode()
其功能是返回当前...]]></description><category></category></item><item><title><![CDATA[Java的7个基础问题]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83711960</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83711960</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 12:08:00 +0800</pubDate><description><![CDATA[问题一：我声明了什么！ 



Java代码 



String s = &quot;Hello world!&quot;;   


String s = &quot;Hello world!&quot;; 
许多人都做过这样的事情，但是，我们到底声明了什么？回答通常是：一个String，内容是&quot;Hello world!&quot;。这样模糊的回答通常是概念不清的根源。如果要准确的回答，一半的人大概会回答错误。 这个语句声明的...]]></description><category></category></item><item><title><![CDATA[堆和栈的区别]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83711958</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83711958</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 12:06:03 +0800</pubDate><description><![CDATA[栈与堆都是Java用来在Ram中存放数据的地方。 与C++不同，Java自动管理栈和堆，程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区，类的对象从中分配空间。 这些对象通过new、newarray、anewarray和multianewarray等指令建立，它们不需要程序代码来显式的释放。 堆是由垃圾回收来负责的。 堆的优势是可以动态地分配内存大小，生存期也不必事先告诉编译器，因为它...]]></description><category></category></item><item><title><![CDATA[Comparable和Comparator]]></title><link>https://blog.youkuaiyun.com/bolange/article/details/83711830</link><guid>https://blog.youkuaiyun.com/bolange/article/details/83711830</guid><author>bolange</author><pubDate>Mon, 20 Sep 2010 09:22:44 +0800</pubDate><description><![CDATA[
public interface Comparable&amp;lt;T&amp;gt;

此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序，类的 compareTo 方法被称为它的自然比较方法。 
实现此接口的对象列表（和数组）可以通过 Collections.sort（和 Arrays.sort）进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素，无需指定...]]></description><category></category></item></channel></rss>