golang函数式编程与面向对象
面对不断增加的需求假设有一组学生:若按姓名找出其中一个,你的代码可能如下:突然紧急需求来了,按学号找人,代码如下:又一个新需求来了,这次按照ID 找人,代码可以如法炮制:你发现,它们除查询条件不同,其余基本一模一样,别忘了代码结构重复也是代码重复!如何消除重复呢?引入查询条件,这里只需要返回一个bool值,可这样定义:通过查询条件,改造查询方法,把条件作为参数传入:于是,按名字查找变成:已经很好了,但你发现,每有一个新查询,都要做一层封装。如何才能省去这层封装?可