请留下您的手机号
我们即刻安排课程老师为您回电!
您好
请留下您的联系方式,我们将主动给您回电!
第一时间为您安排就近试听!
培训首页 > JAVA培训头条 > java面向对象的设计原则你知道哪些
上海Catia运动实战应用培训

java面向对象的设计原则你知道哪些

上海交大教育集团 / 发表时间:2017-10-25 466人浏览 PHP培训   上海PHP培训

  向对象设计原则是oops(object-oriented programming system,面向对象的程序设计系统)编程的核心,但大多数java程序员追逐像singleton、decorator、observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经验丰富的java程序员没有听说过oops和solid设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程。

  众所周知,java编程基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计。查看apache和sun的开放源代码能帮助你发现其他java设计原则在这些代码中的实际运用。java development kit则遵循以下模式:borderfactory类中的工厂模式、runtime类中的单件模式。


  原则1:dry(don't repeat yourself)

  即不要写重复的代码,而是用"abstraction"类来抽象公有的东西。如果你需要多次用到一个硬编码值,那么可以设为公共常量;如果你要在两个以上的地方使用一个代码块,那么可以将它设为一个独立的方法。solid设计原则的优点是易于维护,但要注意,不要滥用,duplicate 不是针对代码,而是针对功能。这意味着,即使用公共代码来验证orderid和ssn,二者也不会是相同的。使用公共代码来实现两个不同的功能,其实就是近似地把这两个功能永远捆绑到了一起,如果orderid改变了其格式,ssn验证代码也会中断。因此要慎用这种组合,不要随意捆绑类似但不相关的功能。

  原则2:封装变化

  在软件领域中唯 一不变的就是"change",因此封装你认为或猜测未来将发生变化的代码。oops设计模式的优点在于易于测试和维护封装的代码。如果你使用java编码,可以默认私有化变量和方法,并逐步增加访问权限,比如从private到protected和not public.有几种java设计模式也使用封装,比如factory设计模式是封装"对象创建",其灵活性使得之后引进新代码不会对现有的代码造成影响。

  原则3:开闭原则

  即对扩展开放,对修改关闭。这是另一种非常棒的设计原则,可以防止其他人更改已经测试好的代码。理论上,可以在不修改原有的模块的基础上,扩展功能。这也是开闭原则的宗旨。

  原则4:单一职责原则

  类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新一轮的测试来避免可能出现的问题。

  原则5:依赖注入或倒置原则

  这个设计原则的亮点在于任何被di框架注入的类很容易用mock对象进行测试和维护,因为对象创建代码集中在框架中,客户端代码也不混乱。有很多方式可以实现依赖倒置,比如像aspectj等的aop(aspect oriented programming)框架使用的字节码技术,或spring框架使用的等。

  原则6:优先利用组合而非继承

  如果可能的话,优先利用组合而不是继承。一些人可能会质疑,但我发现,组合比继承灵活得多。组合允许在运行期间通过设置类的属性来改变类的行为,也可以通过使用接口来组合一个类,它提供了更高的灵活性,并可以随时实现。

  原则7:里氏代换原则(lsp)

  根据该原则,子类必须能够替换掉它们的基类,也就是说使用基类的方法或函数能够顺利地引用子类对象。lsp原则与单一职责原则和接口分离原则密切相关,如果一个类比子类具备更多功能,很有可能某些功能会失效,这就违反了lsp原则。为了遵循该设计原则,派生类或子类必须增强功能。

  原则8:接口分离原则

  采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。设计接口很棘手,因为一旦释放接口,你就无法在不中断执行的情况下改变它。在java中,该原则的另一个优势在于,在任何类使用接口之前,接口不利于实现所有的方法,所以单一的功能意味着更少的实现方法。

  原则9:针对接口编程,而不是针对实现编程

  该原则可以使代码更加灵活,以便可以在任何接口实现中使用。因此,在java中 好使用变量接口类型、方法返回类型、方法参数类型等

  原则10:委托原则

  该原则典型的例子是java中的equals() 和 hashcode() 方法。为了平等地比较两个对象,我们用类本身而不是客户端类来做比较。这个设计原则的好处是没有重复的代码,而且很容易对其进行修改。

  总之,希望这些面向对象的设计原则能帮助你写出更灵活更好的代码。理论是第 一步,更重要的是需要开发者在实践中去运用和体会。




文中图片素材来源网络,如有侵权请联系删除
相关课程
上海Catia运动实战应用培训

上海Catia运动实战应用培训

Catia 运动仿 真实战应用培训
课程级别入门级 培训周期一周以内
培训时间电话咨询
咨询电话 400-656-1450
课程说明
课程级别 入门级
培训周期 一周以内
上课时间 电话咨询
上课地址 上海市徐汇区番禹路868号1号楼昂立教育基地
授课对象
从事产品设计、模具设计、机械设计、数控加工等相关设计工作的企业员工或个人
教程说明
培训图纸+中文教材
课程简介
培训课时
32学时,45分钟/学时,8学时/天,4天
培训费用
5000元
培训讲师
培训讲师

长期使用CATIA软件的资 深培训师,曾给国内多家世界500强企业设计人员进行了成功的培训。

证书
学员可以根据自己需要考取多项认证资格证书: 上海交大教育集团结业证书;达索工程师认证证书
培训大纲
运动仿 真运动仿 真概述运动仿 真的工作界面
运动仿 真模块的参数设置运动仿 真基础运动仿 真流程
进入运动仿 真模块新建运动仿 真文件定义连杆(Links)
定义运动副定义驱动定义解算方案并求解
生成动画连杆连杆概述
连杆的质量属性定义连杆的材料初始速度
初始平动速率初始转动速度主模型尺寸
运动副与约束运动副与自由度旋转副
滑动副柱面副螺旋副
万向节球面副平面副
点在线上副线在线上副点在面上副
其他运动副简介传动副齿轮副
齿轮齿条副线缆副2-3传动副
范例——齿轮系运动仿 真连接器弹簧
阻尼器衬套3D接触
2D接触范例1——微型联轴器仿 真范例2——弹性碰撞仿 真
范例3——滚子反弹仿 真驱动与函数驱动与函数概述
简谐驱动函数驱动铰接运动驱动
电子表格驱动分析与测量分析结果输出
智能点、标记与传感器干涉、测量和跟踪范例1——弹簧悬挂机构仿 真
范例2——曲柄齿轮齿条机构仿 真
课程内容以实际授课为准
  • Adobe认证
  • Oracle认证
  • 思科认证
  • 微软认证
  • Linux认证
  • 其他
  • 职业技能提升
  • 考证找工作
  • 兴趣爱好
  • 周末班
  • 全日制白班
  • 随到随学