软件工程
红色代码
Debug The World
展开
-
软件架构设计原则
1:单一职责原则(SRP):一个优良的系统设计,强调模块间保持低耦合、高内聚的关系,在面向对象设计中这条规则同样适用,所以面向对象的第一个设计原则就是:单一职责原则(SRP,Single Responsibility Principle)。 单一职责,强调的是职责的分离,在某种程度上对职责的理解,构成了不同类之间耦合关系的设计关键,因此单一职责原则或多或少成为设计过程中一个转载 2011-11-07 23:48:03 · 4462 阅读 · 1 评论 -
Doxygen 使用笔记
最近用doxygen 生成文档,有些细小的问题还是很折腾了一阵。现将使用方法记录如下,便于日后查找。步骤1 :下载doxygen的binary 包doxygen下载地址http://www.10.xdowns.com/uploadFile/2007-7/doxygen.rar为了使doxygen能够将类图、协作图等 加入到文档中,还要下载安装graphviz for转载 2014-08-06 02:13:32 · 829 阅读 · 0 评论 -
《设计模式解析第二版》读书笔记:一
对象是一个有责任的实体,应该对自己负责,而且清楚地定义责任,而不是一些数据和方法的简单堆积。要学会用对象的职责而不是其结构来考虑问题。这也是领域驱动开发的核心。对象之间的三种关系:泛化、依赖、关联(聚合、组合)泛化表现子类和父类之间是is a的关系。依赖表现use a的关系,通常表现为一个对象是另一个对象的某个方法的参数或者局部变量。关联表现has a的关系,一个对象是零一原创 2014-07-13 15:35:58 · 1100 阅读 · 0 评论 -
对象的责任与职责
对象和数据的主要差别就是对象有行为,行为可以看成责任职责(responsibilities以下简称职责)的一种,理解职责是实现好的OO设计的关键。“Understanding responsibilities is key to good object-oriented design”—Martin Fowler 。对象设计:角色、责任和协作"(Object Design: Roles转载 2014-08-03 22:54:15 · 1130 阅读 · 0 评论 -
十个面向对象设计原则
追求高内聚highly cohesive 和松耦合 loosely couple 的解决方案是面向对象设计基本核心原则。这里列出OO设计中十大原则:1. DRY (不要重复你自己)这是指不写重复的代码,取而代之是使用抽象共性的东西。如果超过一次使用硬编码,那么就要考虑将其公开为final修饰的不变量;如果你在两个以上地方有相同的代码块,那么就要考虑使其成为一个单独的方法。SOLID设计原理转载 2014-08-03 22:47:01 · 1027 阅读 · 0 评论 -
一场争论引发的思考
首先说一些软件工程方面的理论和指导性的原则,和从我个人职业生涯对软件工程和设计模式的一些实践性的理解.虽然有些是理论性的东西,但是具有指导意义. 一: 架构的定义IEEE标准将架构定义为”系统的基本组织结构,包括它的组件,组件之间的相互关系,环境,以及设计和演进的指导原则” 红色字体是我个人认为的3个关键字,每一个关键字是一层意思,第一层就是系统是由逻辑上的组件和模块组成的,是原创 2014-04-12 04:36:07 · 1077 阅读 · 0 评论 -
架构就是bull shit
架构,纯粹就是用来忽悠人的2个字眼,原创 2014-04-10 21:43:45 · 680 阅读 · 0 评论 -
Facede(外观模式)
#ifndef CLASSA_H#define CLASSA_Hclass ClassA{ public: /** Default constructor */ ClassA(); /** Default destructor */ virtual ~ClassA(); void OperationA(原创 2012-02-15 21:05:44 · 1009 阅读 · 0 评论 -
Chain Of Resoponsibility(职责链模式)
#ifndef HANDLER_H#define HANDLER_H#include class Handler{ public: /** Default constructor */ Handler(Handler* pHandler); /** Default destructor */ virtual ~Han原创 2012-02-16 22:13:40 · 784 阅读 · 0 评论 -
Decorator(装饰模式)
#ifndef COMPONENT_H#define COMPONENT_Hclass Component{ public: /** Default constructor */ Component(); /** Default destructor */ virtual ~Component();原创 2012-02-15 00:23:18 · 540 阅读 · 0 评论 -
Adapter(适配器模式)
#ifndef TARGET_H#define TARGET_Hclass Target{ public: /** Default constructor */ Target(); /** Default destructor */ virtual ~Target(); virtual void R原创 2012-02-11 01:58:16 · 651 阅读 · 0 评论 -
Composite(组合模式)
#ifndef COMPONENT_H#define COMPONENT_Hclass Component{ public: /** Default constructor */ Component(); /** Default destructor */ virtual ~Component();原创 2012-02-14 00:34:19 · 560 阅读 · 0 评论 -
Bridge(桥接模式)
#ifndef ABSTRACTION_H#define ABSTRACTION_H#include "Implementor.h"class Abstraction{ public: /** Default constructor */ Abstraction(); /** Default destructor */原创 2012-02-13 00:03:59 · 2394 阅读 · 0 评论 -
Proxy(代理模式)
// 接口类头文件class CSubject{public: CSubject(); ~CSubject(); virtual BOOL DownPic()=0;protected:private:};// 接口类实现文件#include "StdAfx.h"#include "Subject.h"CSubject::CSubject(){}CSubj原创 2012-02-09 21:42:34 · 872 阅读 · 0 评论 -
VS2015 使用微软自带的单元测试框架测试本地C++代码的注意事项
如果测试类使用了预编译头文件的话,要在工程设置中添加stdafx.obj测试STL容器时,会弹出异常错误对话框.解决办法是忽略MSVCRT.lib 和UCRT.lib原创 2016-07-07 19:28:09 · 2696 阅读 · 0 评论