jeans chen
we've got them by the balls
摘要: ZT 设计模式六大原则(6):开闭原则 分类: 设计模式 2012-02-27 08:48 24870人阅读 评论(72) 收藏 举报设计模式扩展框架编程测试定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 开闭原则是面向对象设计中最基础的设计原则,它指导我们如何建立稳定灵活的系统。开闭原则可能... 阅读全文
posted @ 2013-12-23 18:20 jeans chen 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 转贴: 设计模式六大原则(5):迪米特法则 原帖子的后续评论里面很多值得仔细去看 切记!像21楼21楼 chenshufei2 2012-09-23 12:47发表 [回复] 上个例子,就是方法的界定。通常从现实中可以抽取多个对象名词,又有多个动作方法。到底这些动作应该是哪个对象的,我个人觉得,要看动作操作的数据是谁的,那谁就应该负责提供方法。像上面的打印子公司的员工ID,只有子公司自己才知道他的员工ID,所以打印子公司的ID,理应由子公司处理。分类: 设计模式 2012-02-27 08:40 18855人阅读 评论(35) 收藏 举报设计模式liststringclass编程定义:一个.. 阅读全文
posted @ 2013-12-23 18:19 jeans chen 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 设计模式六大原则(4):接口隔离原则 分类: 设计模式 2012-02-27 08:32 17948人阅读 评论(21) 收藏 举报设计模式classinterfacecstring框架 定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则:(图1 未遵循接口隔离原则的设计) 这个图的... 阅读全文
posted @ 2013-12-23 18:18 jeans chen 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 设计模式六大原则(2):里氏替换原则 分类: 设计模式 2012-02-22 08:46 23330人阅读 评论(41) 收藏 举报设计模式class扩展string编程2010 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。定义2:所有引用... 阅读全文
posted @ 2013-12-23 18:16 jeans chen 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 实际上,Abstract Factory 模式是为创建一组(有多类)相关或依赖的对象提供创建接口,而 Factory 模式正如我在相应的文档中分析的是为一类对象提供创建接口或延迟对象的创建到子类中实现。并且可以看到,AbstractFactory 模式通常都是使用 Factory 模式实现(ConcreteFactory1)。 阅读全文
posted @ 2013-12-23 17:58 jeans chen 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 图中的虚线箭头表示依赖关系讨论:Factory 模式在实际开发中应用非常广泛,面向对象的系统经常面临着对象创建问题:要创建的类实在是太多了。而 Factory 提供的创建对象的接口封装(第一个功能),以及其将类的实例化推迟到子类(第二个功能)都部分地解决了实际问题。一个简单的例子就是笔者开开发XXX,采用 Factory 模式后系统可读性性和维护都变得elegant 许多。Factory 模式也带来至少以下两个问题:1)如果为每一个具体的 ConcreteProduct 类的实例化提供一个函数体,那么我们可能不得不在系统中添加了一个方法来处理这个新建的 ConcreteProduct,这样 F 阅读全文
posted @ 2013-12-23 17:47 jeans chen 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 参考 http://blog.csdn.net/zhengzhb/article/details/7331369单例模式应该是23种设计模式中最简单的一种模式了。它有以下几个要素:私有的构造方法指向自己实例的私有静态引用以自己实例为返回值的静态的公有的方法代码说明:Singleton 模式的实现无须... 阅读全文
posted @ 2013-12-23 16:35 jeans chen 阅读(218) 评论(0) 推荐(0) 编辑
摘要: ################################《51CTO下载-24种设计模式介绍与6大设计原则》笑话噱头挺多,但是不深,唯一的好处是可以用笑话记住里面的代码。且里面有的UML图都画错了。#####《C++设计模式 23种设计模式》好书!详细比较了每种模式的适应场合,各个模式的优缺点对比最开始看设计模式书的时候钟情于前者,后来看多了,了解了相关的UML和C++语法的知识后,果断后者。 阅读全文
posted @ 2013-12-23 15:44 jeans chen 阅读(173) 评论(0) 推荐(0) 编辑
摘要: , 以ce,se,ze, (d)ge等结尾的词 加 -s 读 /iz/ license-licenses, office offices最佳答案1: 当名词后加-e(-es)变成复数,动词单数第三人称加-s(-es),或规则动词后加“-ed”变成过去式或过去分词,由于受前面的音的影响,这些后加成分的读音各不相同。如cats和beds其复数形式同样是加“-s”但前者念[s],而后者念[z],原因是他们前面的音一个是清辅音[t],另一个是浊辅音[d]。加“-ed”情况相同,其读音规律是清清浊浊,即清辅音后读清音,浊辅音后读浊音。如:looked念[lukt],而pulled念[puld]。 关于. 阅读全文
posted @ 2013-12-23 12:22 jeans chen 阅读(3568) 评论(0) 推荐(0) 编辑
摘要: 什么叫接口和实现分离,如何实现 [问题点数:20分,结帖人heronism] http://bbs.csdn.net/topics/310212385http://blog.csdn.net/starlee/article/details/610825 C++中接口与实现分离的技术 这两个里似乎是说的是i”Design pattern 里的pImpl不就是干这个的吗?“ 阅读全文
posted @ 2013-12-23 11:36 jeans chen 阅读(159) 评论(0) 推荐(0) 编辑
摘要: csdn上一个好贴子:http://bbs.csdn.net/topics/390646332类与类之间的四种关系1.依赖(Dependency) 类A在类B中作为一个成员函数的参数或者是返回值A的析构不在B中2.关联(Association)类A在类B中作为一个成员变量析构不在B中3.聚合(Aggregation) 类A作为类B中的一个成员变量析构在B中可以在B中的任何周期被析构就像你的头发你挂了头发也就不存在了但是你活着的时候头发没了对你没啥影响聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于. 阅读全文
posted @ 2013-12-23 10:46 jeans chen 阅读(349) 评论(0) 推荐(0) 编辑