「程序员」同样是写过滤器,牛逼程序员和一般程序员的区别?( 二 )
接口 , Java的精髓就在于接口 。
具体什么意思?
现在要查找对应的文件对吧 , 我不写具体的查找条件了 , 我就制定一个接口 , 谁要用接口 , 重写方法就好了:
- 要根据后缀名查找文件?行 , 重写方法就好了 。
- 要根据前缀名查找文件?行 , 重写方法就好了 。
- 用户有任何要求 , 只需要重写接口里的方法 , 写出对应的需求就好了 。
- 高级程序员写出的代码 , 能解决某类问题 , 他在写接口 , 在制定规则 。
- 低级程序员写出的代码 , 只能解决某个问题 , 他在实现接口 , 写出用户具体的要求 。
回到过滤器 , 如何写接口?
①定义过滤器接口MyFilter
要过滤文件?实现这个接口就好了 。
接口里定义一个抽象方法 , 我给你一个file , 具体是什么过滤条件我不清楚 , 你重写我的方法时写清楚 , 并将结果告诉我就好了 。
②定义一个查找方法find , 设定两个参数
一个是file , 一个是定义的接口 。
为何要拿接口作为参数?因为接口能制定规则 。
接口是没法实例化创建对象的 , 那么无论是谁 , 你想要使用find方法 , 必须实现这个接口和重写接口里的抽象方法 。
③重写接口里的抽象方法
根据用户的需求 , 写出具体的过滤条件就好了 , 再返回一个结果 。
④多态
父类引用在调用方法时 , 会调用子类重写后的方法 , 这是多态 。
这里并没有将过滤条件写死 , 而是不同的人在调用find方法时 , 根据不同的重写方法 , 有不同的结果 。
⑤遍历并递归
递归已经说了很多遍了 , 不再阐述 。
所以什么叫代码的可拓展性?
无论用户有什么过滤要求 , 我只需要修改③中重写的方法就可以了 , 其他代码都不用改 , 这就是代码的可拓展性 。
还能优化么?是可以的 , 在③中可以使用lambad表达式代替匿名内部类 。
以上就是关于过滤器一点一点的优化 , 当然我这写的比较粗糙 , 我估计都存在什么问题 , 只不过我自己水平有限 , 没有发现而已 。
但核心思想还是考虑到了的 。
核心思想是啥?
就是接口、面向对象三大特性之一的多态 。
当一个方法里参数有接口时 , 必定会有多态 , 因为接口没法实例化创建对象 , 必定需要其实现类对象 。
总结:
谢谢你的观看
【「程序员」同样是写过滤器,牛逼程序员和一般程序员的区别?】如果可以的话 , 麻烦帮忙点个赞 , 谢谢你
推荐阅读
- 『程序员』装出新高度! 程序员用代码写招租广告只因不想与其它行业人士合租
- #程序员#?8年经验程序员跳槽,2个月面试腾讯百度京东等70家公司,总结出4个共同点
- 程序员■Java程序员必知:HashMap进行put操作会不会引起死循
- 程序员@同学在加拿大当程序员,对比国内程序员的待遇,差距这么大
- #程序员#腾讯T4:结合我多年工作经验给程序员的几点忠告,别再埋头苦干了
- 潮黑社|两者区别在哪里?,选择苹果还是华为?同样是世界级的巨头
- 科技怪人|C++程序员的学习进阶之路之书籍篇
- 「程序员」百度女程序员半夜打的回家,被司机嘲讽:加班到一点收入没我高,值得吗?
- 华为■我,华为程序员,35岁被辞退,年薪百万也躲不过“失业危机”?
- 『程序员』程序员多次劝说邻居,不要让孩子去学编程,结果蒙了
