工程师的基本修养 — 面向对象六大原则介绍

首先简单说下面向对象。软件在机器中运行,用来解决实际问题,解决一个问题一定有先后顺序,只要把问题拆解开,然后一件一件的顺序完成,问题大都可以解决,这就是面向过程的编程。

但是对于更加复杂的模型,如果继续使用面向过程的编程,一些程序就会变得不容易控制了。为了更好解决问题,需要对这个世界进行抽象,把一个任务、一个程序拆分成更容易控制和理解的小块,小块间定义好使用原则等,然后在大块中,用逻辑把所有模块都运行起来,有相同特性的模块可以通过继承去更好的管理,还可以定义一些接口约束,让模块都具有同样的外观,等等,这大概就是面向对象。

面向对象的基本原则:**万物皆对象,**最早的面向对象语言应该是 SmallTalk。

这世界中不论具体存在的事务还是虚拟的东西,都可以当它当成对象,比如现实世界中具体存在的轮船、飞机,还有虚拟的东西,比如任务进度、商品评价,都可以把他们当做对象,只需要对它们进行抽象,就可以把一切都构造为对象,然后用编程语言把他们组装在一起,加以逻辑处理,界面展示,用面向对象就可以解决实际问题了。

面向对象三大特征

面向对象有三大特征:封装、继承、多态。这也是整个面向对象的核心,只要理解了这几点,就可以写出面向对象的程序。

封装可以把独立的东西包装成一块,经过封装,一个对象就成型了。比如要封装轮船,它有很多属性,比如重量、大小、速度、使用年限等,还有很多功能,比如启动、停止、装卸等方法,这些所有的属性、方法都包在了一个类里,然后提供出去,这样别人拿到包后,就可以直接使用,这就是封装。

继承可以更好的利用已有的设计、封装。对于有共同特点,有继承关系的对象来说,通过继承可以方便的共享父类逻辑,更好的控制程序。

多态主要通过接口实现,在运行时根据具体类型,调用同样的方法,但是实现由具体实现类控制。用了的人都说好。

面向对象六大原则

面向对象很好,但是同样是面向对象,不同的人可能写出完全不一样的程序,有好有坏。为了让大家写出好的好像对象程序,前辈们总结除了六大原则,只要能够理解并应用这些原则,大家就可以写出不错的面向对象程序。同时这样,大家如果都按照这些原则写,互相看代码、理解代码也就变得更加容易了。

以下六大原则具体说明参考自网络资料,面向对象六大原则和设计模式 | Melo's Blog

单一职责

一个类而言,应该仅有一个引起他变化的原因。也就是说一个类应该只负责一件事情。

就是说一个类、一个方法应该只做一件事,这样可以保持类、方法的单纯,没有任何杂乱因素,使用和维护都会变得很容易,Less is more。

开闭原则

尽量通过扩展应用程序中的类、模块和函数来解决不同的需求场景,而不是通过直接修改已有的类、模块和函数。

一个软件实体类,模块和函数应该对扩展开放,对修改关闭。在软件的生命周期内,因为变化、升级和维护等原因,需要对软件原有的代码进行修改时,可能会给旧代码引入错误。因此,当软件需要变化时,我们应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。

已有的类、方法可能已经运行了很久,他们也许有问题,但是尽量不要直接去改动它们,风险很大,不如对它们进行包装,通过外部方式提高他们。

里氏替换

里氏替换原则就是依赖于继承、多态这两大特性。里氏替换原则简单来说就是所有引用基类、接口的地方必须能透明地使用其子类的对象。通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何报错或者异常,使用者可能根本就不需要知道是子类还是父类。但是,反过来就不行了,有子类出现的地方,父类未必就能使用。

依赖倒置

高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象

  • 高层模块不应该依赖底层模块,两者都应该依赖其抽象。
  • 抽象不应该依赖细节。
  • 细节应该依赖抽象。

接口隔离

客户端应该依赖于它不需要的接口:一个类对另一个类的依赖应该建立在最小的接口上。根据接口隔离原则,当一个接口太大时,我们需要把它分离成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。

迪米特法则

一个对象应该对其他对象保持最小的了解。

只提供自己该提供的,只了解自己该了解的。这一点具体实践指南就是,不要暴露出过多的方法、属性,优先把它们设计为私有的,只需要需要用到了,再去考虑开放访问权限。

参考链接


本篇文章由一文多发平台ArtiPub自动发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值