面向对象设计原则与设计模式 - 如何写出更优雅的代码


前段时间有幸参加了麦思博优雅代码养成指南的培训,故借此记录总结一番,希望能有助于他人。
一个软件、一段代码从合格到优雅或者说优秀,可以归纳为逐级满足以下特质,学术名叫ISO/IEC 软件质量特质:

  • 功能:软件符合需求所必需的条件
  • 可靠性:满足某种指定级别稳定性能的能力
  • 易用性:易理解、使用并吸引客户的能力
  • 性能:表示软件在响应时间和资源占用方面的性能
  • 可维护性:表示软件支持修改的能力
  • 可移植性:表示软件从一个平台迁移到另一个平台的能力

我们通俗一点就是说首先是把需求描述的功能实现了,并且能用;接着得能在基本环境下稳定运行,不要一上生产就崩了;然后是易使用易理解,从系统实现上为用户提供更好的操作方式和操作体验,再然后就是性能、可维护(毕竟唯一不变的就是需求一直会变,所以你的代码要可维护、可扩展)、可移植(作为Java开发者而言,这个特质已经自带了)。对于以上这些特质,读者可以思考一下关于优雅代码,我们关注哪个特质?——自然是可维护性了
可维护性代码的核心原则:
在这里插入图片描述
高内聚、低耦合,同样的内容内聚到同个模块,不同模块间低耦合互不影响。当然说起来简单,不然人人都是架构师了,具体怎么实现呢?如何实现我们“高大上”的高内聚低耦合呢?——分离关注点原则
那怎么个分离关注点呢?我们举个栗子:大家应该都写过或者接触过web前端代码吧,就是HTML、JS、CSS,大家有没有想过为什么是这三个?看下它们分别负责什么,HTML是整个网页的结构,JS是事件、动作,CSS是修饰。有没有发现刚好从三个视角把一个网页拆成了三部分,每个部分互相独立,内部又高度集中、可任意扩展。这就是分离关注点,从而实现高内聚、低耦合。
基于分离关注点这个原则,大神们帮我梳理了一些更为具体的心法,下面我们来一一介绍。
面向对象设计 5大心法

  • SRP – The Single Responsibility Principle (单一职责原则)
  • OCP – The Open Closed Principle (开放封闭原则)
  • LSP – The Liskov Substitution Principle (Liskov替换原则)
  • ISP – The Interface Segregation Principle (接口隔离原则)
  • DIP – The Dependency Inversion Principle (依赖倒置原则)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值