
软件工程
wind19
相互学习,共同进步
展开
-
UML——类图
文章参考 http://blog.youkuaiyun.com/dylgsy/article/details/1076044https://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/原创 2011-07-14 15:45:22 · 546 阅读 · 0 评论 -
CORBA
书 基于C++CORBA高级编程观点http://bbs.chinaunix.net/thread-1418617-1-1.htmlhttp://coolshell.cn/articles/514.htmlhttp://topic.youkuaiyun.com/t/20030424/16/1703420.htmlhttp://s.yanghao.org/program/原创 2012-05-30 17:25:16 · 693 阅读 · 0 评论 -
低耦合 高内聚
一 什么是低耦合耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。原创 2012-05-19 11:37:09 · 2060 阅读 · 0 评论 -
UML概述
本文只针对UML菜鸟,你是中鸟、老鸟,请直接无视本文!摘要:你只需要阅读完本章,就能从宏观上掌握UML的知识,在你的脑袋中形成一张UML的蓝图。你能全面了解UML的基本知识,UML的各种图的用途和概况,你能和实际工作遇到的问题联系起来,帮助你进一步规划下一步的学习。本文是新书《活用UML——需求分析高手》中的第1章“大话UML”,本书更多资料可参考:http://www.umlon转载 2012-05-19 18:32:02 · 3342 阅读 · 2 评论 -
装饰者,适配器,代理和外观模式的区别
装饰者: 封装一个对象,并提供额外的行为,用组合的方式来替代继承以扩展类的功能适配器:封装一个对象,并提供接口的转换,主要的目的是在不修改已经存在的类的前提下,让他们可以在新的框架下面工作代理模式:封装一个对象,并控制它的访问,但是代理和被代理的对象有相同的接口(在c++里面有相同的基类)初看上去,代理模式没什么用处,因为它的接口和真正对象都是一样的,似原创 2012-03-20 14:15:13 · 5638 阅读 · 0 评论 -
设计模式之——模板方法
定义:在一个方法中定义算法框架,但将一些步骤延迟到子类中。可以使得子类在不改变算法的情况下,重新定义某些步骤,实现特定的功能。类图 父类中的templateMethod方法定义了算法框架,不同的子类利用虚函数实现其中的一些步骤原创 2012-05-24 17:53:26 · 582 阅读 · 0 评论 -
软件设计经典书籍推荐
设计模式最经典的书籍自然是GOF的《设计模式》,但很多人的反应是这本书太难理解了,并不适合初学者阅读。这话说得在理。一方面,本书使用的C++示例难倒了一大群Java和.NET的开发人员;另一方面,这本书的风格过于专业化,更偏向于学术论文的风格(事实上,本书的雏形就是来源于GOF中Erich Gamma的博士论文),因此就显得有些晦涩难懂了。基本上,本书可以作为我们参考的标准,是经常查阅的文转载 2012-05-25 23:20:45 · 1221 阅读 · 0 评论 -
基于线程安全的单例模式
今天被问到单例模式了,之前没有很关注线程安全问题,结果悲剧了。这里主要有两个问题:1) 加锁2) 要粒度细,也就是说尽量锁最少的代码所以我们必须加锁,而且只要锁住new就可以了,不要在if判断之前锁。但是这里有出现一个问题就是,如果我们仅仅锁住new的话,伪代码如下testobj * getinstance(){ if(m_instance ==NULL)原创 2012-05-22 17:12:29 · 692 阅读 · 0 评论 -
设计模式之——工厂方法(factory)
1 简单工厂(Static Factory)简单工厂方法,又称静态工厂方法,并不是GOF的23种模式之一,是比工厂方法更简单的一种设计模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例,说简单一点就是把一些if else封装在一个函数里面。 你不需要管一个对象是如何new出来的,只需要调用方法拿到这个对象。其类图如原创 2011-11-11 14:43:52 · 708 阅读 · 0 评论 -
系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
PS:下面是性能测试的主要概念和计算公式,记录下:一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟r转载 2013-02-21 19:47:42 · 274600 阅读 · 14 评论 -
SMART原则
战略在被执行的时候要细化成一个个小目标。这些目标都遵循了著名的SMART原则目标必须是具体的(Specific)目标必须是可以衡量的(Measurable)目标必须是可以达到的(Attainable)目标必须和其他目标具有相关性(Relevant)目标必须具有明确的截止期限(Time-bound)原创 2014-06-16 09:48:57 · 1302 阅读 · 0 评论 -
推荐一位工作流管理新贵:Trello
因为最近一直在给某组织寻找一些工作工具,很自然就想到,比起目前的邮件组沟通模式,工作团队需要个更快速、高效的工作流(work-flow)管理平台。但通过一段时间的观察,发现了一个奇怪的趋势——凡是带有工作流管理性质的应用或项目,都会扯出一堆项目管理、内容管理、日程管理的复杂功能。这对我目前的需求是相悖的,团队工具必须有着很低的学习曲线,显然它们对大众的要求太高了。在年前,在与果壳某转载 2014-07-28 09:49:31 · 1567 阅读 · 0 评论 -
中间件
1 定义在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。2 优点和特点中间件屏蔽了异构的操作系统和网络,使得开发应用程序的人只要关注自己的部分,并且以后不管网络或系统如何升级,只要中间件的接口不变,软件都不会受到影原创 2012-05-30 11:36:32 · 838 阅读 · 0 评论 -
设计模式之——命令模式(Command)
命令模式是将请求封装成对象,让调用者不需要关心请求的真正实现,从而实现面向接口编程。其类图如下Command是一个抽象类,或接口,定义了一个execute接口;ConcreteCommand将接收者保存在里面,真正实现execute功能的是接收者。对于客户来说只要调用Invoker的SetCommand设定,之后调用execute就可以了。当然ConcreteCommand的功能是固定的,原创 2011-11-29 16:16:15 · 839 阅读 · 0 评论 -
设计模式之——访问者模式(visitor)
一、用途和目的作用于某个对象群中各个对象的操作,它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作,故使用访问者的前提是对象很少改变,而操作会经常增加和修改二、主要思想在支持单分派语言(如c++,java等)中模拟双分派三、类图关系原创 2011-07-18 16:59:43 · 705 阅读 · 0 评论 -
内聚度和耦合度
一、联系当一个程序段或语句(指令) 引用了其它程序段或语句(指令)中所定义或使用的数据名(即存贮区、地址等)或代码时,他们之间就发生了联系。一个程序被划分为若干模块时,联系既可存在于模块之间,也可存在于一个模块内的程序段或语句之间,即模块内部。联系反映了系统中程序段或语句之间转载 2011-08-05 15:39:34 · 1603 阅读 · 0 评论 -
应该针对接口编程 而不是针对实现编程
应该针对接口编程 而不是针对实现编程 在面向对象设计方法中有很多值得提倡的方法,这些方法可以为我们的设计带来很大的灵活性,可复用性。 其中一个原则就是“针对接口编程,而不是针对实现编程” 这个原则带来的好处有以下几点: Client不必知道其使用对象的具体所属类。 Client无需知道特定类,只需知道他们所期望的接口。 一个对象可以很容易地被(实现了转载 2011-11-15 10:22:18 · 2839 阅读 · 0 评论 -
GOF设计模式学习笔记 --辨析各种模式的要点和相似模式之间的区别
GOF设计模式学习笔记--辨析各种模式的要点和相似模式之间的区别作者:agipenia1 正文之前1.1 要阅读本文,需要:l 有至少1年(最好是3年)以上使用C#、Java等面向对象语言开发经验。您没看错,不是招聘,但是就是需要面向对象开发经验,没有面向对象开发经验的不要看。当然,也有些厉害的,做过一转载 2011-11-14 11:46:45 · 11494 阅读 · 2 评论 -
设计模式之——设计模式使用率排行榜
Java设计模式使用率爬行榜使用频率所属类型模式名称模式简单定义5创建型Singleton单例模式保证一个类只有一个实例,并提供一个访问它的全局访问点。5结构型Composite复合模式将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性。5结转载 2011-11-15 14:29:50 · 1970 阅读 · 0 评论 -
设计模式之——装饰者模式(Decorator)
装饰者模式又是一个用组合代替继承很好的例子。我们考虑一下一个情景:一个咖啡店要卖各种饮料,如果我们用继承的模式,那么肯定先设计一个饮料的基类,然后把其他的这种特殊饮料从基类继承,那么类图关系如下如果仅仅有这么几种饮料当然没有问题,但客户的需求是多样的,有的人要加糖的,有的人要两份咖啡的,有的人要大杯的,有的人要小杯的,那么如果为每一种组合都生产一个类的话,那么就会像下图这样原创 2011-11-21 11:16:59 · 779 阅读 · 0 评论 -
面向对象设计原则
最基本是四个原则,也是面向对象的特点,和一个最终的目标四个原则:抽象、封装、多态和继承一个目标: 高内聚,低耦合1) 单一职责原则 (The Single Responsiblity Principle,简称SRP) 2) 开放-封闭原则 (The Open-Close Principle,简称OCP) 3) Liskov 替换原则(原创 2011-11-15 17:09:03 · 574 阅读 · 0 评论 -
设计模式之——桥接(Bridge)和策略(strategy)
之所以把这两个放在一起,是因为他们很相似,但又是完全不同的先来看看Bridge模式1)如果客户给了一个需求,故我们实现了类A2)过了几天客户说这个东东需要有两种算法,故我们派生出 A0, A13)然后又过了几天,客户又提出要求说要在不同的操作系统下实现,故我们派生出类A0a, A0b, A1a, A1b这样我们需要不停的派生,不停的改Bridge模式就是原创 2011-08-09 18:03:19 · 3811 阅读 · 0 评论 -
设计模式之——观察者模式(Observer)
观察者:在对象之间定义一对多的依赖,这样当一个对象的状态改变时,其它所有依赖它的对象都能收到通知,并自动更新观察者模式是用得非常多的一种设计模式,看看Windows里面的消息机制,回调函数就知道了。用一句话概括就是你不用来找我,我会找你。一个主题可以有很多观察者,只要让主题知道就行了,然后当主题有变化的时候,他就会通知所有的观察者,并把数据发送给他们,那样不同的观察者就可以对同一份数据进行原创 2011-11-16 18:24:28 · 596 阅读 · 0 评论 -
设计模式之——单件模式(Singleton)
单件模式的实现很简单,基本上没什么好说,就说几点:为什么要单件模式?因为程序中很多对象只能有一个,如日志文件,打印机等,如果出现多个就麻烦了。为什么不用全局变量?的确用全局变量可以实现只有一个对象,但是全局变量必须在程序启动的时候就初始化,万一我们的对象很耗资源,但又不一定用到的话,全局变量就不合适了。另外在多线程的情况还可以把互斥等处理细节封装在里面。原创 2011-11-24 17:29:35 · 617 阅读 · 0 评论 -
设计模式之——生产者模式(Builder)和原型模式(Prototype)
在创建型模式里面还有两个就是builder 和 prototype 1 生成器模式生成者模式和工厂模式有点像,都是封装了创建对象的过程,创建出对象,但builder模式强调一步步创建,不同的输入参数,同样的创建过程而创建出不同的对象,在builder里面,对象一般是比较复杂并由很多对象组成的,每一步创建出其中的一部分;另外创建者模式不像工厂模式一样直接返回对象,而是提供一个接口来得到对原创 2011-11-12 17:34:17 · 1292 阅读 · 0 评论 -
读书
设计模式设计模式精解-GoF 23 种设计模式解析 浅显易懂,可以对各种模式有一个大致的了解,比四大金刚的书好看多了Head First 设计模式——又是一本讲设计模式很浅显易懂的书,并且对设计模式讲得更为详细,小缺点是里面的模式并不全 http://www.codefans.net/down/1595.shtml(高清完整非扫描版下载)STLC++标准程序库 —原创 2011-11-04 10:20:42 · 731 阅读 · 0 评论