摘要: /** * 线性表 **/#include "stdio.h"#include <stdlib.h>#include <iostream.h>#define LIST_MAX_LENGTH 100 //线性表的最大长度#define OK 1#define ERROR 0//定义线性表结构typedef struct{ int *item; //指向存放线性表中数据元素的基地址 int length; //线性表的当前长度 ... 阅读全文
posted @ 2013-02-23 17:52 何长春 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 代理模式:为其他对象提供一种代理以控制对这个对象的访问。所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。package com.qinsoft.design;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class ProxyClient{ public static void main(St... 阅读全文
posted @ 2013-01-18 12:07 何长春 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 外观模式:为子系统中的一组接口提供一致的界面,fa?ade提供了一高层接口,这个接口使得子系统更容易使用。外观模式定义了一个更高层的接口,使子系统更加容易使用。Facade模式是为了降低子系统之间,客户端与实现化层之间的依赖性。当在构建一个层次化的系统时,也可以同过使用Facade模式定义系统中每一层的入口,从而简化层与层之间的依赖关系。package com.qinsoft.design;public class Facade{ public static void main(String[] args) { //只需要DrawerFacade,不关心子系统之间的依... 阅读全文
posted @ 2013-01-18 11:44 何长春 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 组合模式:将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性。Composite好处: 1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。 2.更容易在组合体内加入对象部件. 客户端不必因为加入了新的对象部件而更改代码。如何使用Composite? 首先定义一个接口或抽象类,这是设计模式通用方式了,其他设计模式对接口内部定义限制不多,Composite却有个规定,那就是要在接口内部定义一个用于访问和管理Composite组合体的对象们(或称部件C... 阅读全文
posted @ 2013-01-18 11:22 何长春 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 顺丰的单号生成规则:顺丰单号目前12位,主要看倒数第二和第三位,我总结一下规律:如果倒数第二位为9是,看第三位进行相应的跳转(下面代码有注释),倒数第二位不为9,倒数第一位倒退一位。简单地做了个java版的递归package com.qinsoft.test;public class SFNext{ public static void main(String[] args) { SFNext sf = new SFNext(); sf.MakeSFNextNo("594338721914"); } private void MakeSFNe... 阅读全文
posted @ 2013-01-10 14:53 何长春 阅读(4089) 评论(0) 推荐(0) 编辑
摘要: Memento,备忘录模式:在不破坏对象的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。一、备忘录模式的优点 1、有时一些发起人对象的内部信息必须保存在发起人对象以外的地方,但是必须要由发起人对象自己读取,这时,使用备忘录模式可以把复杂的发起人内部信息对其他的对象屏蔽起来,从而可以恰当地保持封装的边界。 2、本模式简化了发起人类。发起人不再需要管理和保存其内部状态的一个个版本,客户端可以自行管理他们所需要的这些状态的版本。 3、当发起人角色的状态改变的时候,有可能这个状态无效,这时候就可以使用暂时存储起来的备忘录将状态复原。二、备忘录模式的缺点: 1、如果发起人角色的状态... 阅读全文
posted @ 2012-12-25 15:36 何长春 阅读(153) 评论(0) 推荐(0) 编辑
摘要: Interpreter,解释器模式:给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。package com.qinsoft.design;import java.util.HashMap;abstract class Expression{ //以环境类为准,本方法解释给定的任何一个表达式 public abstract boolean interpret(Content ctx); //检验两个表达式在结构上是否相同 public abstract boolean equals(Object o); /... 阅读全文
posted @ 2012-12-25 15:29 何长春 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 访问者模式:表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这个元素的新操作。访问者模式的组成结构:1) 访问者角色(Visitor):为该对象结构中具体元素角色声明一个访问操作接口。该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色。这样访问者就可以通过该元素角色的特定接口直接访问它。2) 具体访问者角色(Concrete Visitor):实现每个由访问者角色(Visitor)声明的操作。3) 元素角色(Element):定义一个Accept操作,它以一个访问者为参数。4) 具体元素角色(Concrete Element):实现由元素角 阅读全文
posted @ 2012-11-26 17:00 何长春 阅读(178) 评论(0) 推荐(0) 编辑
摘要: KISSY 是由淘宝前端攻城师们发起创建的一个开源 JS 类库。她遵循的原则是 小巧灵活、简洁实用、愉悦编码、快乐开发。Backbone.js 是一种重量级javascript MVC 应用框架,通过Models进行key-value绑定及custom事件处理,通过Collections提供一套丰富的API用于枚举功能,通过Views来进行事件处理及与现有的Application通过RESTful JSON接口进行交互。Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格, 阅读全文
posted @ 2012-10-31 17:55 何长春 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 中介者模式:用一个中介对象封装一些列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。举例:在一个公司里面,有很多部门、员工,为了完成一定的任务,“同事”之间肯定有许多需要互相配合、交流的过程。如果由各个“同事”频繁地到处去与自己有关的“同事”沟通,这样肯定会形成一个多对多的杂乱的联系网络而造成工作效率低下。此时就需要一位专门的“中介者”给各个“同事”分配任务,以及统一跟进大家的进度并在“同事”之间实时地进行交互,保证“同事”之间必须的沟通交流。很明显我们知道此时的“中介者”担任了沟通“同事”彼此之间的重要角色了,“中介者”使得每个“同事”都变 阅读全文
posted @ 2012-10-31 17:31 何长春 阅读(251) 评论(0) 推荐(0) 编辑