面向对象编程 - 六大原则

        在做面向对象程序设计时,我们通常会在为如何设计一个类而烦恼这里简单介绍面向对象编程的几个原则,根据这些原则去设计类以及类与类之间的关系,从而使得程序满足高可维护、可复用等条件。

面向对象编程与面向过程编程的理解:(纯属个人理解)

        面向过程编程:好比做一件事,自始至终都是一个人在做。如:研发一个软件开发项目,从业务调研,UI设计,前端设计,后台设计等等都是由一个人完成,各部分的衔接非常紧密。

        面向对象编程:也是做一件事,但是这件事是由一个团队完成,每个人负责不同的部分,若业务需要更改,那么只需调整相关部分即可。

        面向过程编程 好比是在 面对对象编程 中仅使用一个对象来完成所有业务的编程。

一、单一职责原则:

        在设计一个类,要充分考虑到这个类拥有特征(属性)和功能(方法)。当然,也不在这个类中添加额外的方法,否则会出现对象“权责不明”的情况,对于程序开发、维护都十分不利。

        如:设计一个模型User,该包含name和pwd属性,以及对应的get和set方法;不要添加otherMethod这种与对象无关的方法,使得程序的可复用性和可维护性偏弱。

            

        优点:使面向对象程序设计结构清晰,有利于提高开发效率、减小维护成本。


二、开放 - 封闭原则:

        开放:对程序的扩展是开放的。可以创建自己的类(这些类可以继承已有的类或实现已有的接口)来完成所需的业务逻辑;

        封闭:对程序的更改是封闭的。在做开发时,尽可能的不去的更改已有的类,如在使用框架时,不能更改框架的源码(框架重构除外)

        优点:使程序可扩展性强、维护成本减小等。


三、依赖倒置原则:

         在做MVC模式开发中,通常来说,Controller层会直接依赖于Service层,Service层直接依赖于Dao层,这种编程方式称为“依赖实现编程”。这种编程方式有一个很大的缺点,那就是耦合性太强。

        将MVC各层进行抽象,Controller抽象层与Service抽象层建立关系,Service抽象层与Dao抽象层建立关系,而具体的MVC各层之间并无直接联系,这种编程方式称为“依赖抽象编程”。这种编程方式解决了“依赖实现编程”强耦合性的缺点

        从“依赖实现编程”到“依赖抽象编程”的转变,既是 依赖倒置原则。

        优点:遵循了开放 - 封闭原则;减小了高层与底层之间的耦合度


四、里氏代换原则:

        简单理解就是面向对象编程中的继承。用《大话设计模式》中的一句话说,就是:子类型必须能够替换掉它们的父类型。


五、迪米特法则:

        如果两个类没有直接联系,那么它们之间没有必要发生直接的相互作用。如果非要它们之间发生某种联系,则可以通过第三个类来建立关系。

        优点:避免不相关的类之间的耦合。


六、合成/聚合复用原则:

        尽量使用合成/聚合,尽量不要使用类继承。聚合,集体与个体的关系,好比人群是由一个一个的人聚在一起形成的;组合,部分与个体的关系,好比一个人是由头、手、脚等各部分组成的。

        优点:保持了每个类的封装性;类和类继承层次会保持较小规模。


结语:单一职责原则、开放 - 封闭原则、依赖倒置原则是最为常用的原则,做面向对象程序设计时尽量遵循这几大原则。

        (本人为初学者,技术尚浅,若有写错的地方,还望赐教。)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值