【Java】每个Java程序员都应该学习10条编码原则( 三 )
7.Liskov替代原则
根据Liskov替换原则 , 子类型必须是超级类型的替代I指使用超类类型的方法或函数必须能够使用对象子类 , 没有任何问题“ 。
LSP关系密切对单一责任原则和界面分离原理.
如果类具有比子类更多的功能 , 则可能不支持某些功能 , 并且确实违反了LSP 。
为了跟随LSP实体设计原理 , 派生类或子类必须增强功能 , 而不是减少它们 。 LSP代表固体缩略词的“L” 。
下面是一个违背Java中Liskov替换原则的代码示例:
Liskov替换原理在Java中的应用
如果你有办法area(Rectangle r) , 它计算矩形的面积 , 然后当您传递Square 因为Square 不是真正的长方形 。
如果您对一个更真实的示例感兴趣 , 那么面向对象设计的坚实原则Pluralsight课程是一门非常好的课程 。
8.接口隔离原则(ISP)
接口隔离原则说明客户端不应实现界面如果它不使用这个的话 。
这种情况主要发生在一个接口包含多个功能时 , 而客户机只需要一个功能 , 而不需要其他功能 。
毫无疑问 , 接口设计是一项棘手的工作 , 因为一旦您释放了您的接口 , 您就无法在不破坏所有实现的情况下更改它 。 当然 , Java 8的默认或保护方法功能确实为接口的发展提供了一种方式 , 但并不是所有的编程语言都支持这些特性 。
这种设计原则在Java中的另一个好处是 , 接口的缺点是在任何类都可以使用它之前实现所有方法 , 因此拥有单一的功能意味着实现的方法更少 。
如果您在编写代码时得不到接口的好处 , 那么我建议您阅读我的博客文章 , Java中接口的实际使用了解更多 。
9.接口方案编制-不执行
程序员应该总是用于接口的程序 , 而不是用于实现的;将导致灵活的代码 , 它可以与接口的任何新实现一起工作 。
具体而言 , 您应该对变量使用接口类型 , 返回方法的类型 。 类Java中的参数类型SuperClass类型来存储对象 , 而不是使用SubClass.
我是说
List numbers= getNumbers();
而不是
ArrayList numbers = getNumbers();
这也在许多Java书籍中得到了建议 , 包括有效Java和头第一设计模式书 。
如果您对提高程序的代码质量感兴趣 , 我还建议您看看重构设计模式关于Udemy的课程 , 它将帮助您使用C#中的重构技术和设计模式来改进内部设计 。
10.授权原则
不要自己做所有的事情 , 把它委托给相应的班级 。 委托设计原则的经典例子是java中的equals()和hashCode()方法.
为了比较两个对象是否相等 , 我们要求类本身进行比较 , 而不是进行比较 。 Client 做那个检查 。
这个设计原则的主要好处是没有重复代码而且很容易改变行为 。 事件委托是此原则的另一个示例 , 其中将事件委托给处理程序进行处理 。
总结
所有这些面向对象设计原则通过努力实现高内聚性和低耦合性 , 帮助您编写灵活和更好的代码 。
理论是第一步 , 但最重要的是培养发现何时应用这些设计原则的能力.
一旦掌握了这一点 , 下一步就是学习Java中的设计模式 , 它使用这些设计模式来解决应用程序开发和软件工程中常见的问题 。
为感谢您对我们的认可 , 特意准备了一些IT入门和进阶的干货
包括:Java、UI设计、H5前端、Python+人工智能、软件测试和新媒体运营六大学科视频资料 。 以及IT就业大礼包 。
线上视频、音频 , 随时学习观看
关注我们并私信“资料”即可获取 。
推荐阅读
- 『程序员』装出新高度! 程序员用代码写招租广告只因不想与其它行业人士合租
- #程序员#?8年经验程序员跳槽,2个月面试腾讯百度京东等70家公司,总结出4个共同点
- 程序员■Java程序员必知:HashMap进行put操作会不会引起死循
- 程序员@同学在加拿大当程序员,对比国内程序员的待遇,差距这么大
- #程序员#腾讯T4:结合我多年工作经验给程序员的几点忠告,别再埋头苦干了
- 课工场郑州翔天信鸽|JavaScript最常用,java是主流,JetBrains公布编程语言排名
- 猿灯塔|POI Excel,Java架构-Apache
- 【Java】github上标星70.5k,贼火的Java突击手册,全面详细对标阿里P7
- 科技怪人|C++程序员的学习进阶之路之书籍篇
- 「程序员」百度女程序员半夜打的回家,被司机嘲讽:加班到一点收入没我高,值得吗?