函数式编程是如何提升代码的扩展性

文章探讨了软件发展的三个阶段,强调了面向对象编程和函数式编程在提升代码扩展性方面的作用。面向对象编程的封装、继承和多态特性被介绍,而函数式编程通过函数的可创建、传递和返回值特性,增强了代码的复用性。JDK 8 中引入的函数式编程接口如 Predicate 在实际代码重构中的应用,展示了如何通过函数式编程优化查询逻辑,提升系统扩展性。最后,作者提倡将函数独立成原子化组件,以实现更灵活的业务组装,从而满足复杂的业务需求。
摘要由CSDN通过智能技术生成

软件的发展大致经历三个阶段

  • 第一阶段(20世纪40年代中期到50年代中期),主要是科学与工程计算,处理对象为数值数据,以个体方式使用机器(或汇编)语言编制程序

  • 第二阶段(20世纪50年代中期到60年代后期),从高级程序设计语言出现到软件工程提出以前。这个阶段研究对象增加了并发程序,并着重研究高级程序设计语言、编译程序、操作系统以及各种支撑软件和应用软件

  • 第三阶段(20世纪60年代后期软件工程提出以来),由于大型软件的开发耗时耗力,任务重,需要采用合作的方式才能完成,所以引入软件工程的理念来管理项目。

从工程学角度来讲,我们常说的软件工程一般采用面向对象编程,差别在与使用的编程语言不同,有人习惯用java,有人喜欢C#,各有各的特色,除了语法上略有差异,其本质都差不多,所以你可能会经常听到有人说,只要你精通了一门语言,再学习其他语言,会感觉如有神助,基本也是这个道理。

 

面向对象编程

首先我们来看下面向对象编程的三大特性

 

  • 封装

  • 继承

  • 多态

 

面向对象编程是一种具有对象概念的程序编程范型,它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的可重用性、灵活性和可扩展性,对象里的程序可以访问及修改对象相关联的数据。在面向对象编程里,计算机程序会被设计成彼此相关的对象。

 

对象按照执行角色,可以分为数据对象、行为对象。我们常理解的面向对象编程的模式,比如:y=f(x),其中x、y都是数据对象,通过行为对象F的方法运算得到了加工后的对象y。

 

我们具体看个示例:

/** * @Author onlyone * <p> * 活动模型 */public class Activity {
  
    private Long id; // 活动id    private String name; // 名称    private String desc;  // 描述    private Date time;  // 活动时间    private String publisher; // 发布人}

按活动id查找一个活动,代码一般会这么写

public Activity queryById(List<Activity> activityList, String id) {
      for (Activity activity : activityList) {
          if (id.equals(activity.getId())) {
              return activity;        }    }    return null;}

 

如果此时业务提出了一个新的需求,按名称来查询活动,得嘞,又得重新造个轮子

 

public Activity queryByName(List<Activity> activityList, String name) {
      for (Activity activity : activityList) {
          if (name.equals(
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值