今天是: 2025-09-17    美好的一天,从现在开始

技巧网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问移动社区

搜索
热搜: PLC 视觉 活动
查看: 1|回复: 0

[C#编程] C#编程反射与设计模式之面向对象技术应用总结

[复制链接]

  离线 

TA的专栏

累计签到:313 天
连续签到:3 天

80

主题

5

回帖

336万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3361330
发表于 2 小时前 | 显示全部楼层 |阅读模式
五、面向对象技术应用总结
1.面向对象技术的基本概念
面向对象概念理解
[1]面向对象技术以对象为中心,以类和继承为构造机制,充分利用接口和多态提供灵活性,来认识、理解和分析客户的实际需求,最后按照面向对象的方法、原则来编写程序,实现软件系统的功能。

面向对象的特征总结
[1]抽象:先不考虑细节,降低系统复杂性。
[2]封装:隐藏内部实现,保证系统安全性。
[3]继承:复用现有代码,减少代码重复性。
[4]多态:改变对象行为,实现功能多样性。


2.面向对象设计的目标
可扩展性(Extensibility)
[1]系统可以很容易增加功能,而对原有系统影响非常小。

灵活性(Flexibility)
[1]模块相对独立,通信尽可能少。这样当一个模块修改时,对别的模块影响很小。

可替换性(Pluggability)
[1]当一部分不再满足需要时,可以将旧的部分用新的轻松替换。
[2]系统 “ 在线升级 ” 功能就是很好的说明。


3.面向对象设计的总体原则
针对接口编程,而不是针对实现编程
[1]客户无需知道所使用的对象的特定类型。
[2]只需要知道对象拥有客户所期望的接口。


优先使用对象组合,而不是类继承
[1]对象组合:一个含有其他对象的类称为组合类,比如我们使用的扩展实体。
[2]继承在某种程度上破坏了封装性,子类父类耦合度高,父类修改后会影响所有的子类。
[3]而对象组合则只要求被组合的对象具有良好定义的接口,耦合度低,一个类的修改对其他类的影响非常小。


封装变化点
[1]使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次间的松耦合。
[2]同一个层如果某个接口不固定也可以通过多态封装变化点,简单工厂的使用就是一个典型例子。


4.面向对象设计的常用原则
“开-闭”原则
[1]约束对象如何对可变性封装问题。
[2]一个软件系统应该对扩展开放,对修改关闭。
[3]添加新功能时应该只是向代码集中添加新的代码,不应该修改原来的代码。


里氏代换原则
[1]约束子类和父类如何替换问题。
[2]要求子类可以无条件的替换父类,比如多态的时候使用父类类型作为参数,但是实际传递的是子类对象。


依赖倒转原则
[1]要求开发中针对接口编程(业务依赖于接口,而不是实现)。
[2]在进行业务设计时,应尽量在接口或抽象类中定义业务方法,并通过具体的实现类(或子类)来实现业务方法,业务方法的修改将不会影响到运行时业务方法的调厂用,比如抽象工厂IDAL和和DAL之间的关系。


聚合复用原则
[1]尽量使用组合/ 聚合、尽量不使用继承。
[2]在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分。
[3]新的对象通过向这些对象的委派达到复用这些对象的目的。


迪米特法则
[1]耦合度问题:尽量“不要和陌生人说话”。
[2]一个软件实体应当尽可能少的与其他实体发生相互作用。
[3]初衷在于降低之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。


接口隔离原则
[1]要求接口的职责要单一。
[2]使用多个专门的接口比使用单一的总接口要好。也就是说,一个类对另一个类的依赖性应当是建立在最小的接口上。


其他原则:类的职责明确原则等

5.面向对象设计目标与原则关系
可扩展性
[1]系统可以很容易增加功能,而对原有系统影响非常小。
[2]对应的原则:开/ 闭、里氏替换、依赖倒转、合成/ 聚合复用。


灵活性
[1]模块相对独立,通信尽可能少,这样当一个模块修改时,对别的模块的影响很小。
[2]对应原则:开/ 闭、迪米特法则、接口隔离。


可替换性
[1]当一部分不再满足需要时,可以将旧的部分用新的替换。
[2]对应原则:开/ 闭、里氏替换、依赖倒转、合成/ 聚合复用。


C#编程反射与设计模式之面向对象技术应用总结

C#编程反射与设计模式之面向对象技术应用总结

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
QQ在线咨询
售前咨询热线
暂无
售后咨询热线
暂无
快速回复 返回顶部 返回列表