希望能得到各位高手的解答
解决方案 »
- Repeater删除记录
- 发布后webbrowser不执行DocumentCompleted事件
- 主流的.Net框架目前有哪些???
- c#从加密码狗读出来的十六进制串,怎么转换成字符串
- 请问各位高手我想学C#该学那本书好点?
- 如何将DataGrid中的数据复制到另一个同结构的DataGrid中
- 集成SmsCore.dll的C#应用程序在windows2008R2下启动异常
- 怎样在数据库里使用异常处理
- 在C#中怎么声明?
- 请问各位大哥,如何把datareader中得数据显示在listview中,注意有三个字段,要把它并排显示出来。
- c#中,像这样的XML配置文件怎么写才合适呢?
- 窗体继承后如何操作父窗体的控件
1、维护简单
模块化是面向对象编程中的一个特征。实体被表示为类和同一名字空间中具有相同功能的类,我们可以在名字空间中添加一个类而不会影响该名字空间的其他成员。
2、可扩充性
面向对象编程从本质上支持扩充性。如果有一个具有某种功能的类,就可以很快地扩充这个类,创建一个具有扩充的功能的类。
3、代码重用
由于功能是被封装在类中的,并且类是作为一个独立实体而存在的,提供一个类库就非常简单了。事实上,任何一个.NET Framework编程语言的程序员都可以使用.NET Framework类库,.NET Framework类库提供了很多的功能。更令人高兴的是,我们可以通过提供符合需求的类来扩充这些功能。 OOP 的优点:使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。OOP 缺点,就 C++ 而言,由于面向更高的逻辑抽象层,使得 C++ 在实现的时候,不得不做出性能上面的牺牲,有时候甚至是致命的 ( 所有对象的属性都经过内置多重指针的间接引用是其性能损失的主要原因之一;不过,笔者的局限性在于未使用过 VC++ 外的面向对象语言,所以不是十分肯定,哈哈,有人笑出来了… )。
来写就可以了,根本用不着导入它们的实现包,实际上具体的是由它们自身完成了。 接口说白了,也就是定死了一个框,具体的是糊红纸还是糊黑纸我们都用不着去管的,我们只要知道它是个框,提供
了哪些方法就够了。 举个简单的JDBC的例子吧,比如有个BaseDao接口,现在有MySQLDao实现了一个(我们可以把具体的实现类配在配置
文件中,再通过反射进行实例化),也就类似这样的: BaseDao dao = (BaseDao)(Class.forName(Config.getDaoName()).newInstance()); 其中Config.getDaoName()可以获得配置文件中的配置,比如是:com.bao.dao.impl.MySQLDao。 之后,那些人开始要烧钱了,要改用Oracle了,这样我们只要按BaseDao的定义,再实现一个OracleDao就可以了,
再将配置文件中的配置改为:com.bao.dao.impl.OralceDao就可以了,而在已经写好的代码中,我们可以一行不
改的进行了数据库移植,这个就是面向对象设计原则中的“开-闭原则”(对增加是开放的,对修改是封闭的)。但
这只是理论上的,现实中很难做到的。