摘要: 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。代理模式(Proxy)结构图 Subject类,定义了RealSuject和Proxy的共用的接口,这样就在任何使用RealSubject的地方都可以使用Proxy。abstract class subject { pub... 阅读全文
posted @ 2015-01-29 17:01 楚藉 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 装饰模式(Decorator):动态地给一个对象添加一些额外的职责,就是增加功能来说,装饰模式比生成子类更为灵活。装饰模式(Decorator)结构图 Component是定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加... 阅读全文
posted @ 2015-01-29 10:12 楚藉 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 套接字Socket的引入 为了能够方便地开发网络应用软件,由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket(套接字)。 socket的出现使程序员可以很方便地访问TCP/IP,从而开发各种网络应用程序。随着Unix的应用推广,套接字在编写网络软件中得到了极大的... 阅读全文
posted @ 2015-01-28 20:57 楚藉 阅读(9226) 评论(0) 推荐(0) 编辑
摘要: 面向对象的3个基本要素:封装、继承、多态。设计模式五大原则:单一职责原则(SRP)、开放-封闭原则(OCP)、依赖倒转原则(DIP)、里氏代换原则(LSP)、接口隔离原则(ISP)。单一职责原则(Single-Resposibility Principle, SRP):就一个类而言,最好只做一件事,... 阅读全文
posted @ 2015-01-27 11:16 楚藉 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 《大话设计模式》第一章关于设计一个计算器程序。看完第一章深深地感觉到我存在这样的问题:碰到问题就直觉地用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这样设计程序本身没有什么错误,但是程序不容易维护、不容易扩展、更不容易复用。从而达不到高质量代码的要求。关于面向对象编程比较生动的例子... 阅读全文
posted @ 2015-01-26 21:14 楚藉 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。“面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类”。打一折和打九折只是形式的不同,抽象分析出来,所有... 阅读全文
posted @ 2015-01-23 22:33 楚藉 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 《算法导论》中堆排序主要将其分为堆的性质、维护堆的性质、建堆、堆排序算法堆的性质:给定一个结点的下标i,很容易计算得到它的父结点、左孩子和右孩子的下标(伪代码):PARENT(i) return i/2LEFT(i) return 2i RIGHT(i) return 2i+... 阅读全文
posted @ 2015-01-06 11:28 楚藉 阅读(549) 评论(0) 推荐(0) 编辑
摘要: Randomized quicksort(随机化快速排序)running time is independent of input ordering.no assumption about the input distribution.(无需对输入序列分布做任何假设)no specific inpu... 阅读全文
posted @ 2015-01-04 20:51 楚藉 阅读(2660) 评论(0) 推荐(0) 编辑
摘要: 在《算法导论》的第7章快速排序(QuiclSort)采用分治思想(Divide and Conquer)。对一个典型的子数组A[p..r]进行快速排序的三步分治过程:分解(divide):数组A[p..r]被划分为两个(可能为空)子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中... 阅读全文
posted @ 2014-12-30 15:33 楚藉 阅读(1549) 评论(0) 推荐(0) 编辑
摘要: 在算法导论4.1最大子数组问题中首先提出的是暴力求解方法即计算所有子数组的组合,然后求其和,寻找最大值。这种方法运行时间为Ω(n^2)。然后提出有没有更好的方法。使用分治策略的求解方法:寻找子数组A[low..high]的最大子数组,使用分治技术意味着要将子数组划分为两个规模尽量相等的子数组。也就是... 阅读全文
posted @ 2014-12-24 15:57 楚藉 阅读(375) 评论(0) 推荐(0) 编辑