博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OOP三大特性及几大设计原则
阅读量:6810 次
发布时间:2019-06-26

本文共 728 字,大约阅读时间需要 2 分钟。

  hot3.png

 

封装:

1.隐藏实现细节;

2.恰当地公开接口;
3.将接口和实现分开,增强可维护性;(实现细节改变时,使用该类的客户端程序不需要改变)

继承

1.描述联结类的层次模型;

2.通过抽象,表达共性,实现类的重用;
3.通过子类增加方法和属性以及重写方法,表达差异性;

多态

1.屏蔽子类的差异性,针对共性/接口编程;(向上转型)

2.增强可扩展性;

 

相关设计原则(设计模式一般遵守的原则):
开闭原则(Open-Closed Principle, OCP):软件实体应该对扩展开放,对修改(对已有软件模块、特别是最重要抽象层模块的的更改)关闭。

 

迪米特法则(对于封装)(Law of Demeter LoD)又叫做最少知识原则(Least Knowledge Principle,LKP):对象间尽量最少了解,彻底将API接口和具体实现相分离,模块间仅仅通过API进行通信。

 

里氏代换原则(对于继承)(Liskov Substitution Principle,LSP):如果对于每一个类型为A的对象a,都有类型为B的对象b,使得A定义的所有程序P在所有对象a都替换成b时,程序P没有变化,那么B是A的子类型。

 

合成/聚合复用原则(对于继承)(Composite/Aggregate Reuse Principle,CARP):尽量使用合成/聚合,尽量不要使用继承。

依赖倒转原则(涉及多态)(Dependence Inversion Principle):抽象不应依赖于细节,细节应依赖于抽象;针对接口而非实现编程。

 

三大特性介绍:

简单介绍:

介绍几大原则:

转载于:https://my.oschina.net/itommy/blog/845342

你可能感兴趣的文章
每周个人进度总结06
查看>>
ACM-ICPC 2018 徐州赛区网络预赛 J Maze Designer(最大生成树+LCA)
查看>>
为什么要编写轻量级的View Controller??
查看>>
CRC校验
查看>>
ruby array 额
查看>>
关于Quartz 2D绘图的简单使用
查看>>
数组求和
查看>>
T2_两数相加
查看>>
celery
查看>>
【Ajax】后台验证用户输入的验证码是否与随机生成的验证码一直
查看>>
In App Purchases(IAP 应用程序內购买): 完全攻略
查看>>
离线中技术方案的场景
查看>>
Bootstrap入门!
查看>>
Java 实验五 王奕开
查看>>
docker容器持久化卷讲解
查看>>
h5 canvas
查看>>
Array循环
查看>>
tornado(五)
查看>>
属性扩展
查看>>
11.05面向对象 封装
查看>>