
【设计模式】
CPP攻城师
You got a dream, you gotta protect it. People cant do something themselves,they wanna tell you you cant do it.If you want something, go get it.
展开
-
开放-封闭原则
开放-封闭原则(The Open-Closed Principle,简称OCP)或者叫开-闭原则,意思是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。即对于扩展时开放的(Open for extension),对于更改是关闭的(Closed for modification)。 这样的设计可以实现面对需求的不断改变却可以保持相对稳定,从而使得系统可以在第一个版本以原创 2013-08-16 14:19:09 · 1504 阅读 · 0 评论 -
设计模式六大原则:开闭原则
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 开闭原则是面转载 2013-08-16 14:41:23 · 1056 阅读 · 0 评论 -
设计模式六大原则:里氏代换原则
2.1 爱恨纠葛的父子关系 在面向对象的语言中,继承是必不可少的、非常优秀的语言机制,它有如下优点: 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;提高代码的重用性;子类可以形似父类,但又异于父类,“龙生龙,凤生凤,老鼠生来会打洞”是说子拥有父的“种”,“世界上没有两片完全相同的叶子”是指明子与父的不同;提高代码的可扩展性,实现父类的方法就可以“为所欲为”了,君不转载 2013-08-18 00:16:26 · 1322 阅读 · 0 评论 -
设计模式六大原则:迪米特法则
定义:一个对象应该对其他对象保持最少的了解。 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么转载 2013-08-18 12:59:57 · 932 阅读 · 0 评论 -
设计模式六大原则:单一职责原则
1.1 我是“牛”类,我可以担任多职吗 单一职责原则的英文名称是Single Responsibility Principle,简称是SRP。这个设计原则备受争议,只要你想和别人争执、怄气或者是吵架,这个原则是屡试不爽的。如果你是老大,看到一个接口或类是这样或那样设计的,你就问一句:“你设计的类符合SRP原则吗?”,保准对方立马“萎缩”掉,而且还一脸崇拜地看着你,心想:“老大确实英转载 2013-08-18 00:05:05 · 1221 阅读 · 0 评论 -
设计模式六大原则:依赖倒置原则
3.1 依赖倒置原则的定义 依赖倒置原则(Dependence Inversion Principle,简称DIP)这个名字看着有点别扭,“依赖”还“倒置”,这到底是什么意思?依赖倒置原则的原始定义是:High level modules should not depend upon low level modules. Both should depend upon abstra转载 2013-08-18 00:19:42 · 1894 阅读 · 0 评论 -
设计模式六大原则:接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。 解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。 举例来说明接口隔离原则:转载 2013-08-18 12:56:53 · 1129 阅读 · 0 评论 -
单例模式——C++实现线程安全的单例
一、懒汉模式:即第一次调用该类实例的时候才产生一个新的该类实例,并在以后仅返回此实例。 需要用锁,来保证其线程安全性:原因:多个线程可能进入判断是否已经存在实例的if语句,从而non thread safety. 使用double-check来保证thread safety.但是如果处理大量数据时,该锁才成为严重的性能瓶颈。 1、静态成员实例的懒汉模式: 1 clas原创 2013-09-22 11:04:05 · 26362 阅读 · 8 评论 -
【设计模式】策略模式
前言 万事开头难,最近对这句话体会深刻!这篇文章是这个系列正式开始介绍设计模式的第一篇,所以肩负着确定这个系列风格的历史重任,它在我脑袋里默默地酝酿了好多天,却只搜刮出了一点儿不太清晰的轮廓,可是时间不等人,以后再多“迭代”几次吧!在前面的随笔里,我已经提到了,这个系列准备以《Head First Design Patterns》的结构为主线,所以每个模式的核心故事都是取材于此书,在此再次声明一转载 2015-02-26 16:42:33 · 944 阅读 · 0 评论