
软件架构设计
backo880607
酷爱音乐热爱软件设计热于研究源代码我也喜欢逛街哦天一个大男人居然喜欢逛街
展开
-
软件架构设计之导读
一:前言 我在大二的时候的开始接触C++,这是我学的第一门编程语言,而更巧合的事情,那一学期我在一家公司跟着该公司聘请的外教学习VC,大家可想而知会有什么样的后果——老板及教师都说我什么都不懂,天,我刚接触C++唉。这样就开始我混沌的C++及VC学习之路。因为要在公司里跟着学习VC,因此那段时间,在学校里经常捧着厚厚的《VC++经典入门》来回的啃着,为写出一个窗口程序而兴奋不已(当然你不用编写一原创 2013-03-16 16:46:07 · 1968 阅读 · 0 评论 -
软件架构设计之Utility模块——Functor
一:前言 现在要实作一个泛化仿函数,泛化仿函数是将“请求(函数)封装起来”,存储与对象之中,该对象是具有“value语义”的,因此它支持拷贝,赋值和作为函数参数来传值(pass by value)。通过该对象可间接的处理它封装的请求,类似于boost 中的function功能。本实现采用的是《Modern C++ Design》中的方案。更详尽的说,它具有以下特点:原创 2013-03-20 00:19:26 · 1996 阅读 · 0 评论 -
软件架构设计之Utility模块——string
YKString类是对STL 中的std::wstring的功能扩展,没有什么好解释的了,就直接看代码吧。 头文件: class YKString : public std::wstring { public: typedef std::wstring::size_type size_type; YKString() : std::wstring() {} YKString(const原创 2013-03-23 17:27:17 · 1980 阅读 · 0 评论 -
软件架构设计之Utility模块——Any
YKAny类用于保存任意类型的变量类似于variant_t。这里采用的是boost库中的Any实现原理,增加了两个Any之间比较的功能。看代码吧: class UTIL_API YKAny { class PlaceHolder { public: PlaceHolder() {} virtual ~PlaceHolder() {} virtual const std::ty原创 2013-03-23 17:52:12 · 1653 阅读 · 0 评论 -
软件架构设计之Utility模块——DateTime
这里的日期实现比较简单:采用的是UTC日期(现在还不涉及到其他日期格式的转换如Gregorian日历),且以星期一作为每周的第一天。剩下的就看代码吧: 头文件: class UTIL_API YKDateTime { public: enum DT_FORM { DTF_YMDHMS1, //%Y-%m-%d %H:%M:%S,中文格式选此 DTF_YMDHMS2, //%m/原创 2013-03-23 17:41:49 · 1318 阅读 · 0 评论 -
软件架构设计之Utility模块——内存分配
一:前言 内存分配当然是对动态内存的分配(动态内存是在堆中分配的),使用动态内存的优点: 1.动态内存可以在不同的对象与函数之间共享。 2.动态分配的内存空间的大小可以在运行时确定。 关于内存的知识不想过多的解释,毕竟这是一篇注重设计与实现的文章,让我们把重点转移到:我们为什么要内存分配器,如何实现,对于多种实现,我们该如何抉择,实现后的效果如何等等一系列问题。 二:为什么要内存分配器原创 2013-03-17 16:04:42 · 1992 阅读 · 0 评论 -
软件架构设计之Utility模块——智能指针
一:前言 大家应该明白智能指针的用途(管理动态对象的生命期)及好处。其他话就不多说了,直接看如何实现吧。你将会看到一个基于策略而实作出的无比强大,灵活的智能指针。参考的依然是《Modern C++ Design》一书。 二:原理说明 软件工程比其他工程有更丰富的多样性。你可以采用多种正确的方法去完成一件事情。一旦你选择了一种解决方案,便会有一大堆变化随之涌原创 2013-03-18 23:01:57 · 1366 阅读 · 0 评论