
OOD
binling
这个作者很懒,什么都没留下…
展开
-
由Typeahead想到的搜索的本质,和OO和数据库是统一的
搜索的本质就是输入一个关键词,返回跟这个关键词有关的对象(实体)列表。两层主要意思,第一,搜索本质是返回实体,隐含的意思是你必须先定义各种对象,这就需要OO,从系统中分析出各种类型的对象供搜索。这里背书了OO是前提——系统就是由各种对象组成,搜索就是找到你需要的对象的问题。 第二,和关键词有关的对象。这里有关是抽象的,就是一个link关系,对于自然语言文档类型的对象的搜索,这里的”有关系“就是包含原创 2015-10-08 18:29:00 · 492 阅读 · 0 评论 -
json parser
和xml parser类似三个主要对象datasourceparsertargetObjectparser在iterate datasource的时候碰到不同的字符相当于产生不同的事件,有不同的动作,parser会 维护一些状态,更新targetObject,用stack维护层级,栈顶是当前容器def parseJson(json): stack, key = [[]]原创 2015-10-10 18:43:42 · 861 阅读 · 0 评论 -
OO:XmlParser 网页分析和 爬虫
对象:DataSource, SAXParser, ContentHandler, DataTargetDataSource封装xml数据流,提供read接口char read()SAXPaser 通过DataSource读取数据,产生事件并且回调ContentHandler的事件处理方法parse(DataSource sourceXml, ContentHandler hand原创 2015-10-09 15:15:29 · 599 阅读 · 0 评论 -
分布式process总结之一:Multicast,Membership,Election
从一个分布式系统面临的一般问题:1 Multicast 问题centralspan tree basedgossip2 membership 维护问题原创 2015-12-06 13:11:25 · 1090 阅读 · 0 评论 -
算法也要面向对象OO
直接去模糊的去写,通过调试,一步步改,就算最后写出来了也不知道怎么写出来的算法也要面向对象,识别出变量,定义有确切含义的变量,以及这边变量之间互动的关系,时刻维护变量意义的正确性,也就是invariant 一个例题:压缩字符串,把形如aaabbcdd的字符串压缩成a3b2cd2,只连续出现一次的字符后不跟count,识别对象:新字符串写入指针i, 源字符串读取指针j,原创 2015-09-18 19:29:26 · 721 阅读 · 0 评论 -
面向对象OO 设计、架构终极理解, 以及如何学习一个领域
程序就是一些互相引用的内存快,互相发消息。每个内存块就是一个状态机,状态的迁移规则是定制好的一些消息(方法)。构造函数用来初始化状态。一个内存块的方法除了改变自身状态,也有可能向引用的别内存快发消息,引起别的内存块发生状态转移。重点不在过程化的code,而在对象的状态,code只是定制好的对象状态转移的规则,重在掌握状态怎么转移。程序运行就是对象状态转移,一切都是状态,结果原创 2016-03-28 22:18:00 · 1224 阅读 · 0 评论 -
电梯系统OO设计
理论上应该先黑盒用例,分析需要求,系统边界的输入输出,再白盒类图。 但是对于现实世界模拟的OO,个人感觉先emulate现实世界,初步识别类和类之间的关系,再用用例和顺序图丰富、修正类图。识别类,最主要的原则是封装,数据和数据的操作封装成一个类:轿厢 box:封装轿厢的状态:位置、方向、静止还是运动,capacity, pickup列表,目的地列表楼building:用户请求电梯的媒原创 2015-09-17 17:43:52 · 3834 阅读 · 0 评论 -
再谈缓存
凡是涉及管理数据的系统,都可以用图书馆来考虑,都要面临图书的位置查找和实际摆放两个问题,对应的两大组件就是就是index + store,所有的数据管理系统都包含这两部分。最基本的缓存可以只用一个map,index直接指向数据的物理地址(Object 的reference)。更general的情况是存一个locator,这个locator交给store能直接返回数据。因为缓存需要过期策原创 2015-09-19 20:10:53 · 465 阅读 · 0 评论 -
一些OO练习
表达式:1 + 2 * 3Expression = {literal | Expression}interface Expression { int eval();}子类 LiteralExpression, CompoundExpression,后者分运算符表达式OperatorExpresion,函数表达式FunctionExpression,运算符表达式又分单目双目双目运算符原创 2015-09-17 19:03:13 · 1045 阅读 · 0 评论 -
死锁怎么检测?
先OO分析、建模,再研究具体问题。这里面涉及的对象:1)线程2)锁关系:占有:线程——锁 的一对多关系:一个线程可以占有多个锁,一个锁只能被一个线程占有等待:线程——锁 的多对多关系:一个线程可以等待多个锁,一个锁可以被多个线程等待间接等待关系 线程——线程 的多对多关系,一个线程A等待的锁被另一个线程B拥有,则线程A对线程B有等待关系输入模型:线程列表,锁列表原创 2015-10-09 15:51:05 · 2983 阅读 · 0 评论