image

qke 奇客

Home >> October, 2008

鞋 增高鞋 鞋垫 鞋批发 鞋子 shoes 童鞋 运动鞋 女鞋 皮鞋 鞋业 特价鞋 adidas鞋 深圳鞋

Posted on: Friday, October 31st, 2008 in: unsorted

鞋 增高鞋 鞋垫 鞋批发 鞋子 shoes 童鞋 运动鞋 女鞋 皮鞋 鞋业 特价鞋 adidas鞋 深圳鞋 直销厂家 购买鞋 adidas nike鞋 代理鞋 内增高鞋 杭州鞋 直销价 篮球鞋 网上鞋 耐克 耐克鞋 购物鞋 鞋服装 香港鞋 商场鞋 商城鞋 广东鞋 直销书 直销代理 直销化妆品 直销名录 直销培训 直销深圳 购鞋 鞋产品 专卖鞋 促销鞋 厂鞋 品牌鞋 市场直销 广告鞋 手机直销 擦鞋 汽车鞋 电子鞋 电话直销 直销业 直销商 直销商品 直销商场 [...]

关于层次结构中的两种模型-贫血模型及充血模型

Posted on: Tuesday, October 28th, 2008 in: computer application

贫血模型:是指领域对象里只有get和set方法,或者包含少量的CRUD方法,所有的业务逻辑都不包含在内而是放在Business Logic层。
优点是系统的层次结构清楚,各层之间单向依赖,Client->(Business Facade)->Business Logic->Data Access(ADO.NET)。当然Business Logic是依赖Domain Object的。似乎现在流行的架构就是这样,当然层次还可以细分。
该模型的缺点是不够面向对象,领域对象只是作为保存状态或者传递状态使用,所以就说只有数据没有行为的对象不是真正的对象。在Business Logic里面处理所有的业务逻辑,在POEAA(企业应用架构模式)一书中被称为Transaction Script模式。
充血模型:层次结构和上面的差不多,不过大多业务逻辑和持久化放在Domain Object里面,Business Logic只是简单封装部分业务逻辑以及控制事务、权限等,这样层次结构就变成Client->(Business Facade)->Business Logic->Domain Object->Data Access。
它的优点是面向对象,Business Logic符合单一职责,不像在贫血模型里面那样包含所有的业务逻辑太过沉重。
缺点是如何划分业务逻辑,什么样的逻辑应该放在Domain Object中,什么样的业务逻辑应该放在Business Logic中,这是很含糊的。即使划分好了业务逻辑,由于分散在Business Logic和Domain Object层中,不能更好的分模块开发。熟悉业务逻辑的开发人员需要渗透到Domain Logic中去,而在Domian Logic又包含了持久化,对于开发者来说这十分混乱。  其次,因为Business Logic要控制事务并且为上层提供一个统一的服务调用入口点,它就必须把在Domain Logic里实现的业务逻辑全部重新包装一遍,完全属于重复劳动。
Trace Link: “贫血模型” Author:Martin Fowler

C++中的数据类型及关键字

Posted on: Monday, October 27th, 2008 in: cpp

C++定义了七个基本类型
void:空类型
int :整型 标准32位
float:浮点型 标准32位
double:双精度型 标准64位
char:字符类型 标准8位
bool:布尔类型,有ture 和false两个值 标准8位
wchart_t:宽字符类型 标准16位
一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰. 当类型修饰符单独使用的时候, 默认的类型是 int.
可用sizeof() 获取类型的大小(字节数)
C++中的关键字
asm 插入一个汇编指令.
auto 声明一个本地变量.
bool 声明一个布尔型变量.
break 结束一个循环.
case 一个switch语句的一部分.
catch 处理 thrown 产生的异常.
char 声明一个字符型变量.
class 声明一个类.
const 声明一个常量.
const_cast 从一个const变量中抛出.
continue 在循环中间断循环.
default 是一个case语句中的缺省项.
delete 释放内存.
do 构造循环体.
double 声明一个双精度浮点变量.
dynamic_cast 动态投射.
else 是一个if语句中的预备条件.
enum 创建列举类型.
explicit 仅用在构造器的正确匹配.
extern 告诉编译器在别的地方变量已经被定义过了.
false 属于布尔值.
float 声明一个浮点型变量.
for 构造循环.
friend 允许非函数成员使用私有数据.
goto 跳转到程序的其它地方.
if 从一次判断的结果处执行代码.
inline 定义一个函数为内联.
int 声明一个整型变量.
long 声明一个长整型变量.
mutable 忽略const变量.
namespace 用一个定义的范围划分命名空间.
new 允许动态存储一个新变量.
operator 创建重载函数.
private 在一个类中声明私有成员.
protected [...]

c++ 操作符优先级

Posted on: Monday, October 27th, 2008 in: cpp

优先级 
   操作符

1
()
[]
->
.

 
::
 
 
 

 
!
~
++

2
- (unary)
* (dereference)

 
& (address of)
sizeof

3
->*
.*
 
 

4
* (multiply)
/
%

5
+
-

6
<<
>>

7
<
<=
>
>=

8
==
!=

9
& (bitwise AND)

10
^

11
|

12
&&

13
||

14
? :

15
=
+=
-=
etc.

16
,

Cpp预编译指令二

Posted on: Monday, October 27th, 2008 in: cpp

预编译指令除#define,还有
#if,#ifdef, #ifndef, #else, #elif, #endif ,#error,#include,#progma,#undef
常见的预定义变量 :
__LINE__ 和 __FILE__ 变量表示正在处理的当前行和当前文件.
__DATE__ 变量表示当前日期,格式为month/day/year(月/日/年).
__TIME__ 变量描述当前的时间,格式为hour:minute:second(时:分:秒).
_cplusplus 变量只在编译一个C++程序时定义.
__STDC__ 变量在编译一个C程序时定义,编译C++时也有可能定义.
下载: cpp2.cpp#include <iostream>
#include <typeinfo>
using namespace std;
 
int main()
{//预定义变量
    cout<<__FILE__<<typeid(__FILE__).name()<<endl;//当前文件
    cout<<__LINE__<<typeid(__LINE__).name()<<endl;//当前行号
    cout<<__DATE__<<typeid(__DATE__).name()<<endl;//当前日期
    cout<<__TIME__<<typeid(__TIME__).name()<<endl;//当前时间
//    cout<<_cplusplus<<endl;// 变量只在编译一个C++程序时定义.
    cout<<__STDC__<<typeid(__STDC__).name()<<endl;// 变量在编译一个C程序时定义,编译C++时也有可能定义.
    #ifdef DEBUG
    cout<<"This is the Debug Version!"<<endl;
    #else
    cout<<"This is the Release Version!"<<endl;
    #endif
    return 0;
}