面向对象设计原则

1.
如果说设计模式是对某种场景的最佳实践,那再在这些场景与设计上更进一步的提炼出的规范可以被总结为一系列面向对象设计的原则,
这些原则是更加抽象的一层,这些原则并不是某个厂商或者是语言的编写者确立的规范,而是在大量的实践中总结出来的经验,可以说是
优秀的面向对象设计大都符合这些规范,也可以说是在这些规范的约束下设计出良好的面向对象系统。开闭原则就是强调系统应该对扩展开放,
对修改关闭,一个系统最开始的功能可能是不够完善的,可能在不断的迭代中会添加各种各样的功能,如果不能满足开闭原则,那新需求的
到来往往面临着系统的重构甚至是推倒重来,对修改关闭是为了保证原有的功能能够正常的运行。开闭原则很难彻底的去保证,
大多的设计模式教材也强调了这个原则带着理想主义色彩,但是不能因为无法彻底的实现就不去遵守,我们应该在设计中尽量的保证系统
符合开闭原则。里氏替换原则就是父类出现的地方,面向对象的继承和组合是复用的基本形式,里氏替换原则是面向对象继承复用的基石,
要在原有的功能上去扩展新的功能,只有当子类能够满足替换掉父类并不影响原有系统逻辑的情况下,才能体现出继承复用的优势。
子类也能出现并且能正常运行,继承或多或少破坏了类的封装性,因为不仅复用了父类的功能,也可能去重写父类的函数,如果在其他地方调用了该函数,
那当替换成子类(以另一种逻辑重写该函数)的时候系统可能会出现意想不到的运行结果,因此为了保证里氏替换原则,应该尽量避免重写父类函数。
接口隔离是我们在实现接口的时候应该尽量让接口的功能单一,否则我们实现某个功能还必须要实现该接口的无关紧要的函数。

2.关于接口与抽象类
类是对很多种具有共性的物质的抽象,而抽象是为了满足复用,定义一个盒子,但这不是一个可以使用的盒子,部分的功能是缺失的,
很多时候我们使用抽象类去定义一个基本事物的抽象骨架,这个骨架依赖的某些细节是灵活多变的,很多时候抽象类的出现是我们从很多类
抽象的,是自下而上的抽象过程,然后采用模板方法模式在具体的实现类去实现。而接口是动态的功能性的职责,是自上而下的设计,
一个类去实现某个接口就说明该接口具有了怎样的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值