软件编程思想

软件工程的目的不是开发出项目,软件工程主要是为了项目的迭代和维护。
好的程序员追求可维护的代码
python和js语言属于灵活的语言,要写出可维护的代码比较难,而java c#语言具有一定的语法强制性和语言的特质,能够很容易的写出可维护性的代码
好的代码?不啰嗦,自描述性的代码,可维护性的代码
所有软件工程的复杂性都是为了写出可维护的代码。比如对象,多态,IOC,AOP都是为了这一目的

开闭原则OCP
什么样的代码才是可维护的代码?
软件工程中最为重要的一个原则:开闭原则OCP。必要要满足开闭原则才能称的上是一份可维护的代码。
开闭原则:对扩展开放,对修改关闭
修改:对现有的代码进行修改(修改BUG除外);
扩展:增加代码
如果有功能需要增加或者需要修改业务需求,尽量要新增,比如:如果想修改现有的方法,那就新增一个方法;如果想修改一个类,那就新增一个类;以此类推,而不是在原来的类上直接做修改,会导致意想不到的BUG

结论:想要实现OCP原则,就要面向抽象编程
为什么要面向抽象教程
JAVA就是为了面向抽象设计的编程语言
依赖interface 接口和abstract 抽象类,依靠这两个,才能实现JAVA中的多态性,实现JAVA的面向抽象编程

A依赖了一个具体的类C,可能还有别的类依赖C,当需求变更的时候,我们重新为了一个类D打算取代类C,一旦这么做,所有依赖C的类都得进行改动,这将是灾难性的。原因在于这里没有面向抽象编程。
我们在编程的时候,不能依赖一个具体的类,而是要依赖一个抽象。我们在编程中实例化一个对象主要是为了调用对象里面的方法,如果我们在这边可以实现,C是一个接口,B,D,F,G都是C的实现,那么这边只要传进一个C实例化的对象就可以了,不需要指定具体是哪个类的对象。这就是面向抽象编程。

面向抽象的常见手段:
第一阶段:interface
第二阶段:工厂模式
第三阶段:IOC与DI
目的:面向抽象编程
面向抽象编程是为了实现开闭原则,最终的目的是写出可维护的代码


SpringBoot为什么有那么多复杂的概念?
IOC控制反转:SpringBoot框架会根据入口类,扫描包文件的所有类,当类上有注解@RestController@Component@Service@Repository时,IOC容器就会接管这个类,实例化类
DI依赖注入:某个类属性上加上@Autowired注解,这个属性就会被IOC容器接管,会自动在这个属性上注入类相应的对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值