软件应该是可以扩展的,但是不可以修改的。对扩展都是开放的,模块式可以扩展来满足新的行为,我们可以改变模块的功能。OCP的好处是,尽可能的减少修改模块的次数和范围,从而提高代码的可维护性,复用性。比如操作系统的升级补丁,在修复bug的情况下,肯定是越小越小。如果说OCP做的不好,每次修改需要修改大量的文件,那就会导致补丁很大。对于修改是封闭的,在扩展模块的时候,不必改动源代码的二进制文件,不管是.o文件还是.dll文件都不用改动。问题的核心是怎么样改变了模块
系统 2019-08-12 01:32:46 2891
——.NET设计模式系列之六Terrylee,2006年1月概述在软件系统中,有时候面临的产品类是动态变化的,而且这个产品类具有一定的等级结构。这时如果用工厂模式,则与产品类等级结构平行的工厂方法类也要随着这种变化而变化,显然不大合适。那么如何封装这种动态的变化?从而使依赖于这些易变对象的客户程序不随着产品类变化?意图用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。结构图Prototype模式结构图生活中的例子Prototype模式使用原型
系统 2019-08-29 23:53:11 2890
1.典型C/C++程序/*HelloC.c*/#includeintmain(intargc,char*argv[]){printf("HelloC!/n");return0;}//HelloCPP1.cpp#includeintmain(intargc,char*argv[]){std::cout<<"HelloCPP!/n";return0;}//HelloCPP2.cpp#includeusi
系统 2019-08-29 23:31:28 2890
/*--将所有的表中,数值类型由char,varchar改为nchar,nvarchar的存储过程--邹建2004.02(引用请保留此
系统 2019-08-29 22:37:03 2890
Win32OpenGL编程(3)基本图元(点,直线,多边形)的绘制writeby九天雁翎(JTianLing)--blog.csdn.net/vagrxie讨论新闻组及文件一、提要在前面两篇相关文章《Win32OpenGL编程(1)Win32下的OpenGL编程必须步骤》《Win32OpenGL编程(2)寻找缺失的OpenGL函数》中,我们已经建立了一个较为全面的Win32OpenGL编程环境及一个简单的框架,并且,实际上掌握了OpenGL在Windows
系统 2019-08-29 22:03:16 2890
PS:更新中……创建用户:可指定用户表空间和临时表空间createusermyuseridentifiedby123456defaulttablespacemytabletemporarytablespacetmp_table;用户授权:可以根据需要选择权限。GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,DROPANYVIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA
系统 2019-08-12 09:30:37 2890
该工具的下载地址如下:http://www.ej-technologies.com/download/exe4j/files.php我下的是最新版本的安装包,安装时会出现这个:它要求JDK至少1.5以上,点Locate找到你机器上安装的%JDK1.5%/bin/java.exe就可以进行安装了。下面就安装后的一些使用事项说一下:第1步跳过。第2步,我们事先已经制作好了jar文件,故选下面一个"JARinEXE":第3步,第一个空随便写,下面一个写出你想要将
系统 2019-08-12 09:30:20 2890
掌握DirectX和DirectInput——力反馈游戏杆JasonClark不知不觉中,Windows下的游戏和多媒体程序已经开始流
系统 2019-08-12 09:29:51 2890
依赖:(Dependency)对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系关联:(Association)对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。指一个类指到另一个类中的属性.而且是长期的(不带有包含关系的关联)一对一、一对多、多对多classA{privateBb;}classB{privateAa;}聚合(又聚集):(Aggregation)表
系统 2019-08-12 09:29:37 2890
Java技术是什么?Java技术既是一种高级的面向对象的编程语言,也是一个平台。Java技术基于Java虚拟机(Javavirtualmachine,JVM)的概念——这是语言与底层软件和硬件之间的一种转换器。Java语言的所有实现都必须实现JVM,从而使Java程序可以在有JVM的任何系统上运行。Java编程语言(Javaprogramminglanguage)与众不同之处在于:Java程序既是编译型的(compiled)(转换为一种称为Java字节码的
系统 2019-08-12 09:29:34 2890