08 2014 档案

摘要:如果一个程序员从来没有在linux,unix下开发过程序,一直在windows下面开发程序, 同样是工作10年, 大部分情况下与在linux,unix下面开发10年的程序员水平会差别很大。我写这篇文章并不是想贬低windows下面开发的人,做windows开发的人看了可能会感觉不舒服,我并不是这个意... 阅读全文
posted @ 2014-08-19 09:38 二郎那个三郎
摘要:文章一、C语言的内存分配模型1、程序代码区:存放函数体的二进制代码。2、全局区数据区:全局数据区划分为三个区域。全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。常量数据存放在另一个区域里。这些数据在程序结束后由系统... 阅读全文
posted @ 2014-08-19 09:24 二郎那个三郎
摘要:Static在C语言里面有两个作用,第一个是修饰变量,第二个是修饰函数。1、Static修饰变量按照作用范围的不同,变量分为局部变量和全局变量。如果用static修饰变量,不论这个变量是全局的还是局部的都是存储在静态数据区。下面分开来讲:¨ 如果用static修饰全局变量,我们称其为静态全局变量。我... 阅读全文
posted @ 2014-08-18 17:05 二郎那个三郎
摘要:标准C语言预处理要求定义某些对象宏,每个预定义宏的名称一两个下划线字符开头和结尾,这些预定义宏不能被取消定义(#undef)或由编程人员重新定义。下面预定义宏表,被我抄了下来。__LINE__ 当前程序行的行号,表示为十进制整型常量__FILE__ 当前源文件名,表示字符串型常量__DATE__转换... 阅读全文
posted @ 2014-08-18 15:27 二郎那个三郎
摘要:在Qt Creator,eclipse等编辑器中,都默认有注释代码的快捷键:Ctrl + /。注释快捷键在程序编程当中的作用相当明显,提高了编程效率。我在网上找到了一个在VC++6.0工具中添加注释快捷键的方法,VC++6.0是以VB为脚本来配置的。首先,找到VC++6.0的安装路径,假设在:D:\... 阅读全文
posted @ 2014-08-18 14:52 二郎那个三郎
摘要:2003让我学会了几件事儿,第一、自己会装系统了。第二、知道很多选项是可以自己进行设置的。这点很重要,本来xp用得很习惯,然后很多都理所当然得认为,就应该是那个样子,可是,并不是的。在2003不断地配置、调试、优化的过程中,也让我对windows系统有了更深刻的理解。》》我想说什么呢:就是举个例子,... 阅读全文
posted @ 2014-08-17 20:40 二郎那个三郎
摘要:作者:Avatar Ye,Game Developer作为一个学医行医八年最终改行的人对这个问题也有些话想说:当年我从复旦医学院毕业,进入上海一个三甲医院外科工作,说起来算是最好的工作选择之一。三年以后忍无可忍,跳槽到了Ubisoft。说起来也有意思,Ubisoft的豪华办公大楼就在那家医院对面,跳... 阅读全文
posted @ 2014-08-17 20:32 二郎那个三郎
摘要:转载自:stonesingsong的日记stonesingsong的主页这学期给导师的一门课做助教。这些学生的表现出乎我意料的好,比起上次给外国学生做助教拼命学会用英文表达中国历史基本情况的锻炼,这次学到的更多是对自己学术历程的思考和理解,他们直接向我展示了学术历程中的不同阶段和层次,尽管他们绝大部... 阅读全文
posted @ 2014-08-17 20:30 二郎那个三郎
摘要:谜题45:令人疲惫不堪的测验 收获:(1)递归调用的先序便利二叉树,以后在理解递归时可以做出书上所示的递归二叉树。这个图的好处是,指出了递归的深度+递归叶子层+调用的顺序(通过在每条线加上调用序号)。(2)JVM的栈深度默认是1024;这也就导致本题的线序遍历二叉树边数过多,永远不会抛出stack... 阅读全文
posted @ 2014-08-17 20:18 二郎那个三郎
摘要:知道“是”与“不是”。作为一名专业的软件开发人员,你得知道,回复“是”时,是一种自信,你已经知道你可以完成某项工作,以及这项工作的预计完成时间。而,“不是”更需要专业素养,需要你更多的知识,需要你的原则与胆量。 阅读全文
posted @ 2014-08-17 20:17 二郎那个三郎
摘要:DEMO大会http://www.pingwest.com/demo/sucessfuldemo/ 阅读全文
posted @ 2014-08-17 20:16 二郎那个三郎
摘要:寻找优秀的程序员(译文)作者:阮一峰日期:2008年11月 2日下面的正文非常精彩,不过请先花2分钟,阅读我的说明。上个月,我同图灵公司签了合同,翻译More Joel on Software一书。敲定合同后,我问:可以将我的翻译,像原文那样开源吗?回答是不行。我又问:可以将部分翻译开源吗?比如25... 阅读全文
posted @ 2014-08-17 20:15 二郎那个三郎
摘要:我为什么喜欢编程作者:阮一峰日期:2009年10月18日这个周末,我在家核对More Joel on Software的最后定稿。此书已经在申请书号了,一拿到书号,就可以印刷和销售了。所以,不出意外的话,年底之前就能上架。在复核的过程中,我又读到了书中让我最有共鸣的一段话:Joel谈为什么公正对程序... 阅读全文
posted @ 2014-08-17 20:14 二郎那个三郎
摘要:Java语言学校的危险性(译文)作者:阮一峰日期:2008年12月 7日下面的文章是More Joel on Software一书的第8篇。我觉得翻译难度很大,整整两个工作日,每天8小时以上,才译出了5000字。除了Joel大量使用俚语,另一个原因是原文涉及"编程原理",好多东西我根本不懂。希望懂的... 阅读全文
posted @ 2014-08-17 20:12 二郎那个三郎
摘要:网页有三个部分——内容(HTML)、外观(css)、行为(javascript)。另一个公示:HTML+CSS+JAVASCRIPT=真正的交互性-----------------------------------------------------------------------------... 阅读全文
posted @ 2014-08-17 20:06 二郎那个三郎
摘要:姜楠:http://www.slyar.com/blog/赵劼:http://blog.zhaojie.me/研究者July:http://my.csdn.net/v_JULY_v王卓群:http://blog.zhuoqun.net/王垠:http://www.yinwang.org咕噜Jonny... 阅读全文
posted @ 2014-08-17 20:04 二郎那个三郎
摘要:有关软件工程的焦油坑来自:大徐结婚前夕我请假一天,躺在床上看了大半的《梦断代码》,Chandler项目时间从2002年转眼到了2004年,10月26日OSAF发布了 Chandler0.4版。2年时间里,整个项目组的人员从几人上升到了20多人,有人离开,更多的是新人加入。做为一款致力于“无地窖式数据... 阅读全文
posted @ 2014-08-17 19:55 二郎那个三郎
摘要:一位搬家师傅的O2O之旅By诸神之黄昏|2014/08/14[核心提示] 一位普通的搬家师傅,无意中被卷入如火如荼的 O2O 浪潮,起初,互联网让他尝到了甜头,后来则是更多的困惑和不解。再一次见到姚师傅的时候,是在七月底的一天。那是我来北京后的第二次搬家。京城名气大点的搬家公司价格实在太贵,我只好去... 阅读全文
posted @ 2014-08-17 18:37 二郎那个三郎
摘要:在公司当技术面试官几年间,从应届生到工作十几年的应聘者都遇到过。先表达一下我自己对面试的观点:1.笔试、面试去评价一个人肯定是不够准确的,了解一个人最准确的方式就是“路遥知马力,日久见人心”。通过一、二个小时内的做题、交流,只是没有其他办法下进行的无奈之举,所以通过了面试不代表有多成功,没通过也不代... 阅读全文
posted @ 2014-08-11 18:43 二郎那个三郎
摘要:本文主要是讲述我参加阿里巴巴2013年校招的经历,感谢并发编程网博主的推荐。电面说是电话面试,其实和正常面试感觉没啥区别,也是聊,也是写代码。用的是这个工具,http://codassium.com/,双方写东西,对方都能看到。面试最开始普遍都是让自我介绍,这是吹牛的良好机会,主要内容为:看了哪些牛... 阅读全文
posted @ 2014-08-11 18:35 二郎那个三郎
摘要:0 点击:--> 阿里巴巴集团今年趁着十周年庆展开了全国范围最大规模的一次招聘,其中在南京将投放300名左右的招聘计划,涉及开发工程师、网站运营师、市场分析 师、客户服务、销售等诸多岗位,今后将供职阿里集团旗下的B2B... 阿里巴巴集团今年趁着十周年庆展开了全国范围最大规模的一次招聘,其中在南京... 阅读全文
posted @ 2014-08-11 18:25 二郎那个三郎
摘要:在上篇中,我们说到了一些认识人的方法(操作,知识,经验,能力),还有一些面试的方法(算法题,实际生产活动中的挑战),下面我们来说说,面试的风格,还有一些点评。把应聘者当成你的同事有些公司的面试官,在面试过程中问你一个算法题,然后等着你解答了,如果你给出一个答案,然后就会问你有没有更好的答案,如果你给... 阅读全文
posted @ 2014-08-11 18:09 二郎那个三郎
摘要:应届生上泡了两年,一直都是下资料,下笔试题,面试题。一直都在感谢那些默默付出的人。写这个帖子花了我两个夜晚的时间,不是为了炫耀,只是为了能给那些“迷惘”的学弟学妹,一点点建议而已。大家何必那么认真,更没必要说脏话。我不在乎你们怎么评价我。只要有人觉得帖子有用,我就欣慰了。谢谢大家,别说脏话,以和为贵... 阅读全文
posted @ 2014-08-11 12:55 二郎那个三郎
摘要:我以前写过一篇“我是怎么招聘程序员的”的文章(在CSDN那里有很多人进行了回复)。今天,我想再谈谈关于招聘和面试这方面的东西,主要是以下这些原因:近半年来我在进行了大量的招聘工作,对面试有一些新的体会。酷壳最近发布了几篇趣味面试题(面试题一,面试题二,面试题三),从回复中让我有一些思考。我有一个同事... 阅读全文
posted @ 2014-08-11 10:56 二郎那个三郎
摘要:很早以前就想写一篇和面试相关的文章了,今天在网络上看到一篇关于如何去面试程序员的英文文章,发现其中有很多和我共鸣的东西,所以仿照其标题通过自己的经历写下了这篇文章。工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,我个人觉... 阅读全文
posted @ 2014-08-11 10:34 二郎那个三郎
摘要:数据库完整性可确保输入至数据库中的数据,是准确、有效及一致的。数据库中任何数据改动,都必须乎合所有完整性限制及数据有效性检验。数据库完整性主要以下三项完整性限制:实体完整性,同一数据表中不可有多项记录拥有相同识别。域完整性, 限制字段中的数据必须乎合默认的数据类型,例如:日期。参照完整性,如两个数据... 阅读全文
posted @ 2014-08-10 16:26 二郎那个三郎
摘要:关于SQL Server用户自定义的函数,有标量函数、表值函数(内联表值函数、多语句表值函数)两种。题外话,可能有部分朋友不知道SQL Serve用户自定义的函数应该是写在哪里,这里简单提示一下,在Microsoft SQL Server Managerment Studio里面,展开具体需要创建S... 阅读全文
posted @ 2014-08-10 16:21 二郎那个三郎
摘要:数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。范式说明1.1第一范式(1N... 阅读全文
posted @ 2014-08-10 16:08 二郎那个三郎
摘要:返回受上一语句影响的行数。如果行数大于 20 亿,请使用ROWCOUNT_BIG。Transact-SQL 语句可以通过下列方式设置 @@ROWCOUNT 的值:将 @@ROWCOUNT 设置为受影响或被读取的行的数目。可以将行发送到客户端,也可以不发送。保留前一个语句执行中的 @@ROWCOUNT... 阅读全文
posted @ 2014-08-10 15:52 二郎那个三郎
摘要:目录存储过程用于实现 ODBC 数据字典功能,并隔离 ODBC 应用程序以使其不受基础系统表更改的影响。变更数据捕获存储过程用于启用、禁用、或报告变更数据捕获对象。游标存储过程用于实现游标变量功能。数据收集器存储过程用于处理数据收集器和以下组件:收集组、收集项和收集类型。数据库引擎存储过程用于 SQ... 阅读全文
posted @ 2014-08-10 15:32 二郎那个三郎
摘要:Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据... 阅读全文
posted @ 2014-08-10 15:29 二郎那个三郎
摘要: 阅读全文
posted @ 2014-08-10 15:06 二郎那个三郎
摘要:(1)若视图的字段是来自字段表达式或常数,则不允许对此视图执行INSERT、UPDATE操作,允许执行DELETE操作; (2)若视图的字段是来自库函数,则此视图不允许更新; (3)若视图的定义中有GROUP BY子句或聚集函数时,则此视图不允许更新; (4)若视图的定义中有DISTINCT... 阅读全文
posted @ 2014-08-10 14:57 二郎那个三郎
摘要:视图:在SQL中,视图是外模式一级数据结构的基本单位。它是从一个或几个基本表中导出的 表,是从现有基本表中抽取若干子集组成用户的“专用表”。 基本表:基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。区别:1、视图是已经编译好的sql语句。而表不是 2、视图没有实际... 阅读全文
posted @ 2014-08-10 14:53 二郎那个三郎
摘要:外模式(用户模式)外模式又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语... 阅读全文
posted @ 2014-08-10 14:35 二郎那个三郎
摘要:在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当你问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。你能向我简要叙述一下SQ... 阅读全文
posted @ 2014-08-10 14:27 二郎那个三郎
摘要:sql理论题1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2。什... 阅读全文
posted @ 2014-08-10 14:21 二郎那个三郎
摘要:为管理岗位业务培训信息,建立3个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩 1. 使用标准S... 阅读全文
posted @ 2014-08-10 14:15 二郎那个三郎
摘要:求其中同一个号码的两次通话之间间隔大于10秒的通话记录ID例如:6,7,8,9,10条记录均符合ID 主叫号码 被叫号码通话起始时间通话结束时间通话时长198290000 0215466546656 2007-02-01 09:49:53.000 2007-02-01 09:50:16.000 23... 阅读全文
posted @ 2014-08-10 13:52 二郎那个三郎
摘要:SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)最近公司在招人,同事问了几个自认为数据库可以的应聘者关于库连接的问题,回答不尽理想~现在在这写写关于它们的作用假设有如下表:一个为投票主表,一个为投票者信息表~记录投票人IP及对应投票类型,左右连接实际说是我们联合查询... 阅读全文
posted @ 2014-08-10 13:28 二郎那个三郎
摘要:以前,在做小本科生时,虽然稚嫩,但是好学。那时,对什么技术,什么方法都带有兴趣,所以图书馆的书架中,总是会有那么一个学生,在那盯着一排排的计算机技术书籍发呆。对,我就是有发呆的毛病,改不了,治不好,哈哈。 那时的我,没有针对某一门技术,深做下去,而是老师开什么课,就拼命地去学。老师开linux... 阅读全文
posted @ 2014-08-09 21:16 二郎那个三郎
摘要:1.各种Unix shelllinux下的shell基本是从unix环境中的shell发展而来,贴一下wiki:其中我们常用的,可归类为Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/c... 阅读全文
posted @ 2014-08-09 19:33 二郎那个三郎
摘要:1. 简单的说,在桌面系统上,可分为Debian和RedHat两大分支,然后Debian这一分支到现在比较火的是Ubuntu, RedHat比较火的是Fedora。贴一下它们的版本历史:fedora:最早Fedora Linux社区的目标是为Red Hat Linux制作并发布第三方的软件包[4],... 阅读全文
posted @ 2014-08-09 19:03 二郎那个三郎
摘要:这几日,在看spring框架的知识,了解了一下spring的IoC核心,AOP的概念,然后剩下的其实就是Spring对于其他的java服务的封装:ORM,web, JMS,JMX等。坦白地说,我并没有完全理解spring的结构,首先它的API,我还不是很清楚,现在能至少做个分类。其次,spring框... 阅读全文
posted @ 2014-08-08 14:21 二郎那个三郎
摘要:1. 开闭原则2. 依赖反向原则3. 接口分离原则4. 迪米特法则5. 组合/继承法则6. 李斯科夫代换法则 阅读全文
posted @ 2014-08-06 16:29 二郎那个三郎
摘要:解决方案一这是因为JDK配置错误所导致的现象。一般说来,新购笔记本会预装64位的windows系统,而在网上下载软件时,32位会优先出现在页面中(现在来说是这个情况,但我认为未来64位会越来越普及)。如果你是64位的系统,却安装了32位的JDK,就会导致上面的情况。解决办法如下:卸载掉原来安装的32... 阅读全文
posted @ 2014-08-05 11:02 二郎那个三郎
摘要:Java是由Sun公司开发的一种应用于分布式网络环境的程序设计语言,Java语言拥有跨平台的特性,它编译的程序能够运行在多种操作系统平台上,可以实现“一次编写,到处运行”的强大功能。工具/原料JDK 1.7 安装包步骤/方法想要成功配置Java的环境变量,那肯定就要安装JDK,才能开始配置的。安装J... 阅读全文
posted @ 2014-08-05 10:03 二郎那个三郎
摘要:在windows的cmd下,用"set"命令可以得到全部的环境变量,如何想得到某个环境变量,直接这样"set path"就可以了。set不仅如何,还有其他功能,有机会再补充上来。 阅读全文
posted @ 2014-08-05 09:41 二郎那个三郎
摘要:很多程序员已经干了一段时间java了依然不明白jdk与jre的区别。JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序... 阅读全文
posted @ 2014-08-05 09:31 二郎那个三郎
摘要:1.王滔谈软件架构师和程序员的区别 http://www.cnblogs.com/wangtao_20/p/3242987.html好的程序员做不出好的软件设计本文由“外刊IT评论”网(http://www.aqee.net/)荣誉出品你不能看到一个程序员还不错,就把他推到系统分析师、软件设计师或软... 阅读全文
posted @ 2014-08-03 16:14 二郎那个三郎
摘要:现在是二月,而且到如今你或许已经读到、或听到人们谈论UML 2.0 —— 包括若干进步的 UML 的新规范,所做的变化。考虑到新规范的重要性,我们也正在修改这个文章系列的基础,把我们的注意力从 OMG 的 UML 1.4 规范,转移到 OMG 的已采纳 UML 2.0草案规范(又名 UML 2)。我... 阅读全文
posted @ 2014-08-03 13:57 二郎那个三郎
摘要:状态图目录:一、状态图简介(Brief introduction)二、状态图元素(State Diagram Elements)1、状态(States)2、转移(Transitions)3、动作(State Actions)4、自身转移(Self-Transitions)5、组合状态(Compoun... 阅读全文
posted @ 2014-08-03 13:55 二郎那个三郎
摘要:一、活动图的组成元素Activity Diagram Element1、活动状态图(Activity)2、动作状态(Actions)3、动作状态约束(Action Constraints)4、动作流(Control Flow)5、开始节点(Initial Node)6、终止节点(Final Node... 阅读全文
posted @ 2014-08-03 13:54 二郎那个三郎
摘要:用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1.参与者(Actor) 表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示... 阅读全文
posted @ 2014-08-03 13:52 二郎那个三郎
摘要:1.概述在软件开发过程中,对于系统中的某些对象,它们存储在同一个集合collection中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同。例子1:顾客在超市中将选择的商品,如苹果、图书等放在购物车中,然后到收银员处付款。在购物过程中... 阅读全文
posted @ 2014-08-03 11:05 二郎那个三郎
摘要:1.概述在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到。然后使用if... ellse语句来做状态判断来进行不同情况的处理。但是对复杂状态的判断就显得“力不从心了”。随着增加新的状态或者修改一个状体(if else(或switch ... 阅读全文
posted @ 2014-08-03 10:56 二郎那个三郎
摘要:1.概述一些面向对象的编程方式,提供了一种构建对象间复杂网络互连的能力。当对象们连接在一起时,它们就可以相互提供服务和信息。通常来说,当某个对象的状态发生改变时,你仍然需要对象之间能互相通信。但是出于各种原因,你也许并不愿意因为代码环境的改变而对代码做大的修改。也许,你只想根据你的具体应用环境而改进... 阅读全文
posted @ 2014-08-03 10:53 二郎那个三郎
摘要:1.概述在面向对象的软件设计与开发过程中,根据“单一职责原则”,我们应该尽量将对象细化,使其只负责或呈现单一的职责,即将行为分布到各个对象中。对于一个模块或者系统,可能由很多对象构成,而且这些对象之间可能存在相互的引用,在最坏的情况下,每一个对象都知道其他所有的对象,这无疑复杂化了对象之间的联系。虽... 阅读全文
posted @ 2014-08-03 10:51 二郎那个三郎
摘要:1.概述类中的面向对象编程封装应用逻辑。类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态。单独的对象是一种组织代码的有用方法,但通常你会处理一组对象或者集合。集合不一定是均一的。图形用户界面框架中的 Window 对象可以收集任意数量的控制对象 - Menu、Slider 和 Butto... 阅读全文
posted @ 2014-08-03 10:48 二郎那个三郎
摘要:1.概述 在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。例子1:电视机遥控器 :... 阅读全文
posted @ 2014-08-03 10:46 二郎那个三郎
摘要:说明:相对于其它模式,Flyweight模式在PHP实现似乎没有太大的意义,因为PHP的生命周期就在一个请求,请求执行完了,php占用的资源都被释放。我们只是为了学习而简单做了介绍。1. 概述面向对象技术可以很好地解决系统一些灵活性或可扩展性或抽象性的问题,但在很多情况下需要在系统中增加类和对象的个... 阅读全文
posted @ 2014-08-03 10:17 二郎那个三郎
摘要:1. 概述 外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子1:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统... 阅读全文
posted @ 2014-08-03 10:14 二郎那个三郎
摘要:1. 概述 若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。 通过继承一个现有类可以使得子类在拥有自身方法的... 阅读全文
posted @ 2014-08-03 10:05 二郎那个三郎
摘要:1. 概述在数据结构里面,树结构是很重要,我们可以把树的结构应用到设计模式里面。例子1:就是多级树形菜单。例子2:文件和文件夹目录2.问题我们可以使用简单的对象组合成复杂的对象,而这个复杂对象有可以组合成更大的对象。我们可以把简单这些对象定义成类,然后定义一些容器类来存储这些简单对象。客户端代码必须... 阅读全文
posted @ 2014-08-03 09:47 二郎那个三郎
摘要:1. 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具... 阅读全文
posted @ 2014-08-03 09:28 二郎那个三郎
摘要:1. 概述:接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题。程序提供者们修改他们的代码;系统库被修正;各种程序语言以及相关库的发展和进化。 例子1:iphone4,你即可以使用UBS接口连接电脑来充电,假如只有iphone没有电脑,怎么办呢?苹果提供了iphone电源适配... 阅读全文
posted @ 2014-08-03 09:11 二郎那个三郎
摘要:在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实... 阅读全文
posted @ 2014-08-03 08:44 二郎那个三郎