熟练掌握和应用面向对象设计七大原则,是初中级工程师向高级/资深工程师进阶的一个必备技能。他可以大大的提升程序的可复用性和可维护性是重构代码的一大利器。
本人菜鸟一枚本面文章的出发点是1.加深个人印象。2.作为笔记记录。3.分享。文章中有描述的不到位或者不正确的地方各位大佬多多指出多多包涵。
使用设计模式的根本原因是适应变化,提升代码的复用率,扩展性,维护性和可读性。在设计时需要遵守以下七大原则:
⑴ 单一职责原则
⑵ 开放封闭原则
⑶ 依赖倒置原则
⑷ 里氏替换原则
⑸ 接口隔离原则
⑹ 组合复用原则
⑺ 迪米特原则
接口隔离原则
指的是不同功能定义写在不同的接口上,客户端不应该依赖他不需要的接口,不建立庞大的臃肿的接口体系,应尽量细化接口,接口中的方法应当尽量的少,换个角度思考就是一个类应该依赖尽量少的接口或实现类。
多个特定客户端接口好过一个通用的性的总接口,避免同一个接口内包含不同职责的方法,接口职责划分更加明确,符合高内聚低耦合的思想。如下方代码:
interface ITool
{
void Write(string str);
string Read();
double Height();
double Width();
}
以上代码有两组一组是Write,Read一组是Height,Width。按照功能分类的话Write,Read属于读写功能Height,Width属于物体的高宽,按照接口隔离原则,需要进行隔离。代码如下:
interface ITool
{
void Write(string str);
string Read();
}
interface ICube
{
double Height();
double Width();
}