-
LSP(里氏替换原则)
所属栏目:[程序设计] 日期:2020-05-23 热度:152
Liskov于1987年提出了一个关于继承的原则“Inheritance should ensure that any property proved about supertype objects also holds for subtype objects.——继承必须确保超类所拥有的性质在子类中仍然成立。”也就是说,当一个子类的实例应该能够替换任何[详细]
-
IT餐馆—第二十四回 明智
所属栏目:[程序设计] 日期:2020-05-23 热度:189
自从上回老杜把TDD,DDD在中国的处境看成是‘水土不服’之后,雨辰就一直想找个机会再跟老杜‘理论’一下。后来在整理以前资料的时候找到了Ivar Jackbson(UML三友,用例的发明人)在2008中国之行时做的一次演讲时用的PPT,其中提出了一种称之为‘明智软件开发[详细]
-
测试驱动开发的适用性
所属栏目:[程序设计] 日期:2020-05-23 热度:185
原文:http://www.infoq.com/cn/news/2009/11/uncle-bob-tdd-applicability TDD取代架构了吗? 你不能通过TDD 得到一个完整的架构。 TDD 可以告诉你某些架构决定,但是你无法在没有架构设计的情况下启动项目。因此某些预先的架构是必要的。其中最重要的一点是[详细]
-
解除具体依赖的技术
所属栏目:[程序设计] 日期:2020-05-23 热度:79
一个外部具体对象的引入,必然会给一个模块带来与外部模块之间的依赖。而具体对象的创建始终是我们无法规避的。即使我们可以利用设计模式的工厂方法模式或抽象工厂封装具体对象创建的逻辑,但却又再次引入了具体工厂对象的创建依赖。虽然在设计上有所改进,但[详细]
-
UML中关联、依赖、聚集等方式的异同
所属栏目:[程序设计] 日期:2020-05-23 热度:96
1. 关联:连接模型元素及链接实例,用一条实线来表示; 2. 依赖:表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示; 3. 聚集:表示整体与部分的关系,用一条实线加空心菱形来表示; 4. 组成:表示整体与部分的有一关系,用一条实线加实心菱[详细]
-
Mondrian系列(五)-深入维度、层次和级别(6)-功能依赖优化
所属栏目:[程序设计] 日期:2020-05-23 热度:169
在一些情况中,可以通过采用已知的功能依赖优势来在数据处理过程中优化性能。这种依赖是典型的与产生数据相关的业务规则之结果,通常不能通过数据本身而推断。 在Mondrian中,功能依赖(Functional dependency)使用 元素的 属性以及 元素的 属性声明。 propert[详细]
-
关于模板中的嵌套依赖类型名与typename
所属栏目:[程序设计] 日期:2020-05-23 热度:73
typename一共就两种用法 ①修饰模板参数,说明它是一个类型.此时可以用class关键字来代替. ②修饰嵌套依赖类型名 关于第②点要说明如下: 1. 依赖类型名: 一个模板中的 依赖于一个模板参数的名字. 2. 嵌套依赖类型名: 嵌套在一个类内部的一个依赖类型名 比如: s[详细]
-
OOAOOD学习摘要(一)
所属栏目:[程序设计] 日期:2020-05-23 热度:192
良好应用程序的基石 一:做伟大软件的三个步骤 1,确认你的软件做客户需要的事情; 2,运用基本的oo原则来增加软件的灵活性; 3,努力实现可维护性、可重用的设计; 要点 脆弱的应用程序是很容易出错的。 你能运用像封装与委托这样的OO原则 建立灵活 的应用程[详细]
-
小菜学设计模式 单一职责原则
所属栏目:[程序设计] 日期:2020-05-23 热度:105
单一职责原则:就一个类而言,应该仅有一个引起它变化的原因! 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受意想不到的破坏! 单[详细]
-
CPPUNIT TDD问题汇总
所属栏目:[程序设计] 日期:2020-05-23 热度:81
CppUnit项目主页:http://sourceforge.net/projects/cppunit/ CppUnit Wiki Page:http://sourceforge.net/apps/mediawiki/cppunit/ CppUnit论坛:http://www.nabble.com/CppUnit---C%2B%2B-port-of-JUnit-f3851.html CppUn[详细]
-
你的项目TDD了吗? 有关测试驱动开发的一点想法
所属栏目:[程序设计] 日期:2020-05-23 热度:94
维基百科对测试驱动开发的定义:测试驱动开发(Test-driven development)是现代计算机软件开发方法的一种。利用测试来驱动软件程序的设计和实现。测试驱动开始流行于20世纪90年代。测试驱动开发是极 限编程中倡导的程序开发方法,方法主要是先写测试程序,[详细]
-
Solaris 补丁类型和依赖关系概述
所属栏目:[程序设计] 日期:2020-05-23 热度:85
Solaris 补丁类型和依赖关系概述 本文档对补丁类型进行了总体概述。此外,本文档还介绍了各种补丁之间的基本关系。 补丁的定义 补丁是对操作系统或其他受支持软件中的已知或潜在问题的修复集合。补丁还可以针对特定的软件发行版提供新特性和增强功能。补丁所[详细]
-
Mondrian系列(二)-Mondrian的数据存储和聚合策略
所属栏目:[程序设计] 日期:2020-05-23 热度:179
一。Olap服务器根据数据存储方式被分为两种: 1.MOLAP(Multidimensional OLAP)在磁盘上存储所有数据,优化多维访问结构,典型情况下,数据存放在密集数组中,每个cell值需要4-8个字节。 2.ROLAP(Relational OLAP)在关系数据库中存储数据,事实表中的每行的列[详细]
-
核心交换机(三层交换)和二层交换之间的端口聚合
所属栏目:[程序设计] 日期:2020-05-23 热度:112
下面是局域网的核心交换机(三层交换)和二层交换之间的端口聚合的操作实例: 2950 Switchen Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#int f0/1 Switch(config-if)#channel-group 1 mode[详细]
-
深层次依赖注入
所属栏目:[程序设计] 日期:2020-05-23 热度:55
依赖注入(DI)是控制反转(IoC)的一种方式。目前,在.NET和Java领域已经有相当多基于DI思想的对象容器,如:Spring,Unity等。本文试图避免重复性地介绍DI基础知识和DI容器的使用,而是希望深一层探讨DI的本质和对象间关系,以达到合理设计避免滥用DI的目的。[详细]
-
软件包的依赖性关系定义
所属栏目:[程序设计] 日期:2020-05-23 热度:193
ubuntu@ubuntu-desktop:~$ sudo apt-cache depends dpkg-dev dpkg-dev 依赖: dpkg 依赖: perl5 perl 依赖: perl-modules 依赖: cpio 依赖: bzip2 依赖: lzma 依赖: patch 依赖: make 依赖: binutils 依赖: lib[详细]
-
忆龙2009:链路聚合模式简介
所属栏目:[程序设计] 日期:2020-05-23 热度:161
按照聚合方式的不同,链路聚合可以分为两种模式: 静态聚合模式 动态聚合模式 1. 静态聚合模式 静态聚合模式中,成员端口的LACP协议为关闭状态。系统按照以下原则设置成员端口的选中状态: 当聚合组内有处于up状态的端口时,系统按照端口全双工/高速率、全双[详细]
-
Bean依赖检查的4种模式
所属栏目:[程序设计] 日期:2020-05-23 热度:103
在自动装配中,由于是隐式的,不像通过ref的属性指定依赖那么直接,开发人员很难看出Bean的每个属性是否都设定完成,借助依赖检查可以实现查看Bean的每个属性是否都设定完成的功能.依赖检查能分别对每个Bean应用或取消应用,默认是不检查依赖关系.使用Bean元素的d[详细]
-
用ref的属性指定依赖的3种模式
所属栏目:[程序设计] 日期:2020-05-23 热度:195
在spring中,用ref的属性指定依赖,有3种模式: local, bean 和 parent. 1. 用local属性指定 如果一个Bean与被参考引用的Bean在同一个XML文件中而被参考引用的Bean是用id来命名的,那么就可以使用ref的local属性.这样会让XML解析器更早地在XML文档解析时,验证Bean[详细]
-
聚合函数 (Entity SQL)
所属栏目:[程序设计] 日期:2020-05-23 热度:112
SQL Server .NET Framework 数据提供程序 (SqlClient) 提供聚合函数。聚合函数对一组输入值执行计算并返回一个值。这些函数位于 SqlServer 命名空间中,该命名空间在您使用 SqlClient 时可用。提供程序的命名空间属性使实体框架可以确定此提供程序对特定构造[详细]
-
三个容易混淆的概念(依赖倒置、 控制反转、 依赖注入)
所属栏目:[程序设计] 日期:2020-05-23 热度:146
依赖倒置(Dependency Inversion Principle)、 控制反转(Inversion of Control)、 依赖注入(Dependency Injection) 这样的文章,真是值得看上好多便啊, 这是我看到的唯一个能够讲清楚 DIP/IoC/DI三者区别的中文精品 http://dotnetfresh.cnblogs.com/archi[详细]
-
MultiTimer 单一计时器 更高效 更安全
所属栏目:[程序设计] 日期:2020-05-23 热度:109
目的是使用一个定时器,但是完成多个Function的功能,并且完成时调用不同的函数。不过个人感觉参数太多,而且如果程序执行时间之和大于延迟时间,不就产生混乱了吗? 有时有一些function都有延时,并且频率都一样, 一般的做法是 一个做法: 每个function都new[详细]
-
关于栈的一个算法(实现单链表的倒置)
所属栏目:[程序设计] 日期:2020-05-23 热度:155
void reverse_list(LinkedListTP *head) {LStackTP ls,p; DataType x; InitStack(ls); p=head-next; while(p!=NULL) {Push (ls,p-data); p=p-next; p=head-next;} While(! EmptyStack(ls)) {Pop[详细]
-
一个列出表外键依赖层级的脚本
所属栏目:[程序设计] 日期:2020-05-23 热度:53
来源: http://sqlblog.com/blogs/jamie_t[详细]
-
软件产品设计规范书(一)
所属栏目:[程序设计] 日期:2020-05-23 热度:95
软件设计书五花八门,根据不同的项目选址一种吧。呵呵! 面向对象软件设计说明书 1 概述 1.1 系统简述 对系统要完成什么,所面向的用户以及系统运行的环境的简短描述,这部分主要来源于需求说明书的开始部分。 1.2 软件设计目标 这部分论述整个系统的设计目标[详细]

浙公网安备 33038102330553号