设计模式系列:OOP设计6大原则

本文介绍了面向对象编程的六大原则:开闭原则、单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则和迪米特法则。通过实例解释了每个原则的概念,强调了它们在保证代码可扩展性和降低维护成本中的重要性。文章提倡开发者应灵活运用这些原则,以实现更好的程序架构。
摘要由CSDN通过智能技术生成

前言

相信有过开发经验的人都有过这种体验:让你接手一个的项目,2种情况。A.这个项目已经被好几个人,甚至好几代程序员开发维护过;B.这个项目等待你的全新开发。不给你设时间期限,你更愿意选择哪一个?我相信99.9%的人都会选择B这种开发模式。有木有??
Why?因为不想改一个bug引起n个bug。说到底,就是因为已有的项目架构没有做好,或者没有适时的做架构调整,假如你接手的是旧代码,可能为了添加一个功能,因为架构不具备扩展性,你也许只能在原有的基础上修改几行代码,甚至修改几百上千行代码来达到目的,以此来埋下诸多隐患待下一个接盘侠搞定。那么就引出了今天的话题?什么样的代码才具备可扩展性呢?

本文作者xiong_it,博客链接:http://blog.csdn.net/xiong_it。转载请注明出处。

本篇文章已授权微信公众号 guolin_blog(郭霖)独家发布.

Open Close Principle

OCP原则(开闭原则):一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

wtf???太抽象了!!!在笔者的理解中,OCP是6大原则的最高纲领,所以才如此抽象,晦涩难懂。用面向对象的语言来讲,OCP是一个最抽象的接口,而其余的5大原则只是OCP的子类接口,他们一起定义了OOP世界的开发标准,常用的23中设计模式更是只能算作这6大原则的实现抽象类,咱们开发的代码实践才是真正的具体子类。

public interface OCP {
    void openExtention();
    void closeModifiability();
}

Q:What is OCP?
A:OCP是啥咧?它告诉我们,咱们编写的代码应该面向扩展开放,而尽量不要通过修改现有代码来拥抱需求变更。这里,代码可以指的是一个功能模块,类,或者方法。
Q:Why do we need to follow this principle?
A:我们为什么要遵循OCP原则呢?地球人都知道代码后期需求变更的痛苦,如果不利用扩展来适应变更,那迎来的将是代码被修改的千疮百孔。
Q:How do we practice this principle?
A:我们如何实践这条原则?能用抽象类的别用具体类,能用接口的别用抽象类。总之一句:尽量面向接口编程。这里之所以说“尽量”是因为凡事都有度,别让你来个hello world你还给整个接口再实现。

talk is cheap,show your the code.

 需求:老王开车去东北。

简单,开撸。

老王来了,大家藏好自己媳妇儿。

public class Laowang {
    private Car car;
    private DongBei dongbei;

    ...
    getter() & setter()
    ...

    public void drive() {
        car.goto(dongbei);
    }
}

要车就给你一辆咯

public class Car {
    public void goto(DongBei dongbei) {
        System.out.println(“要去东北咯,啦啦啦”);
        // 模拟开车旅途消耗时间。10s就到东北了,开的可够快的啊
  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值