`
langzixin
  • 浏览: 127401 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
开放—封闭原则(The Open—Closed Principle)      是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改      对于扩展是开放的,对于修改是封闭的      无论模块是多么“封闭”,都会存在一些无法对之封闭的变化,既然不可能完全封闭,设计人员必须对于他设计的模块对哪种变化封闭做出选择,他必须先猜测出最有可能发生的变化种类,然后构建抽象来隔离那些变化      在我们最初编写代码时,假设变化不会发生,当变化发生时,我们就创建抽象来隔离以后发生的同类型的变化      在简单工厂模式中,为了实现加法运算,首先定义了一个加法类,但今后可能还要 ...
单一职责原则      就每一个类而言,应该仅有一个引起它变化的原因      如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破坏      软件设计真正要做的许多内容,就是发现职责并把那些权职相互分离,其实要去判断是否应该分离出类来,也不难,就是如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责
“面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类”   策略模式      它定义了算法家族,分别封装起来,让它们之间可以相互转化,此模式让算法的变化,不会影响到使用算法的客户。      图示如下      应用场景(Context)             需要使用ConcreteStrategy提供的算法         内部维护一个Strategy的实例         负责动态设置运行时Strategy具体的实现算法         负责跟Strategy之间的交互和数据传递 ...
基本简介      从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式。      简单工厂模式是由一个工厂对象决定创建那一种产品类的实例。      简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。      简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例      工厂(Creator)角色         简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用 ...
物理结构      数据文件、日志文件、控制文件、参数文件   系统全局区(System Global Area)      共享池、数据缓冲区、日志缓冲区   进程      用户进程、服务器进程、后台进程   体系结构图示    物理结构   ...
数据库管理员是一个或一组全面负责管理和控制数据库系统的人员 简称:DBA(Data Base Administrator) 数据库管理员的主要职责:   了解Oracle数据库的体系结构     负责数据库管理系统的安装和升级   启动和关闭数据库   管理和监控数据库用户   管理数据库特权   管理存储空间   建立数据库   备份和恢复数据库
简介 数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应用却不甚乐观,这篇文章会用简单的语言和一个简单的数据库DEMO将一个不符合范式的数据库一步步从第一范式实现到第四范式。 范式的目标 应用数据库范式可以带来许多好处,但是最重要的好处归结为三点: 1.减少数据冗余(这是最主要的好处,其他好处都是由此而附带的) 2.消除异常(插入异常,更新异常,删除异常) 3.让数据组织的更加和谐… 但剑是双刃的,应用数据库范式同样也会带来弊端,这会在文章后面说到。 什么是范式 简单的说,范式是为了消除重复数据减少冗余数据,从而让数据库内 ...
1、在表达式中和在函数参数中计算结果相同(这一点与Turbo C环境不同); 2、后缀:同表达式中Turbo C的情况相同:先统一取值后依次自增,如:    int a,i=5;  a=i+++i+++i++; a=15, i=8. 3、前缀:对整型,前两个自增同Turbo C,即依次自增后统一取值,后面的每个自增后即    取值,如:    int a, i=5;  a= ++i +(++i)+(++i);  a=22, i=8.    对实型,每个自增后即取值,如:    float  a, i=5;  a= ++i +(++i)+(++i);  a=21, i=8. 4、前后缀混合的情况: ...
http://wenku.baidu.com/view/019e26b765ce0508763213e2.html http://wenku.baidu.com/view/344ddd72f242336c1eb95e63.html (分析的很详细、经典)
所有的整型类型都有两种变体:signed 和 unsigned。 有时候,要求整型变量能够存储负数,有时候则不要求。 没有使用关键字unsigned生命的整型变量都被视为无符号的,这种变量可以为正,也可以为负;而unsigned整型变量只能为正 signed 和 unsigned 整型变量占用的内存空间大小相同,而signed整型变量的部分存储空间被用于存储指出该变量是为正还是为负的信息, 因此unsigned整型变量能存储的最大值为signed整型变量能够存储的最大正数的两倍 例如,如果short变量占用2字节,则unsigned short变量的取值范围是0 - 65535,而sign ...
static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 面向过程设计中的static 全局变量、局部变量、静态全局变量、静态局部变量的区别 C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。 从作用域看: 全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。 静态局部变量具 ...
首先在项目中建一个包com.common.filter。 然后再将tomcat的webapps/examples/WEB-INF/classes/filters中的SetCharacterEncodingFilter.java拷到项目新建的com.common.filter包中。 然后在web.xml中添加:       注意添加的红色过滤器部分,位置固定在最前面,否则action得到的汉字就变为???了 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4 ...
Global site tag (gtag.js) - Google Analytics