📖 English Documentation | 📖 中文文档
博文A generic input/output API in Java(by Rickard Öberg,【译】Java的通用I/O API)中给出了一个通用Java
IO API
设计,并且有API
的Demo
代码。
更重要的一点是,这篇文章给出实现这个API
设计本身的步骤和过程,这让API
设计实现过程有了条理。文中示范了从 普通简单实现 整理成 正确分解、可以复用、可扩展的API
设计 的过程。
这个很值得理解和学习!设计偏向是艺术,一个赏心悦目的设计,尤其是API
设计,旁人看来多是妙手偶得的感觉,如果能有些章可循真是一件好事。
给出 减少艺术的艺术工作量 的方法的人是大师。
原文中只给出设计的
- 发展思路
- 关键接口
- 典型的使用方式
没有给出实现细节和可运行的实现,看起来可能比较费力。(细致的分解后的设计往往比较抽象而不容易快速理解)
为了大家和自己更深入有效地学习,需要:
- 给出这个通用
IO API
的可运行的Demo
实现。
这个工程即是本人的可运行的Demo
实现。
当然个人力荐你先自己实现练习一下,这样比直接看我的实现,在学习上会有效得多! - 写了一篇分析总结。
本人的分析总结:用Java I/O API设计练习的分析和总结。这个你可以直接看,以更高效方便地理解这个API
的设计。
PS:
上面2件事其实是份自学的家庭作业哦~ 😆
在阿里中间件团队的时候,@ShawnQianx 大大看到这篇文章时,给组里的人布置家庭作业~@ShawnQianx 对这篇文章及作者的评论:
设计时,一要分解好系统,二是多个组件拼回来还是系统预期的样子,二步都做好是难度所在。这个人分析和把控的功力很好!
package com.oldratlee.io.core
核心接口
package com.oldratlee.io.core.filter
filter功能
package com.oldratlee.io.utils
工具类
package com.oldratlee.io.demo
demo类
- 个人在组内分享时的PPT:API设计实例分析
- 本人对这篇博文的译文:【译】Java的通用I/O API
- 问题交流: https://github.com/oldratlee/io-api/issues
- How to Design a Good API and Why it Matters(by Joshua Bloch) 【本地下载】
http://lcsd05.cs.tamu.edu/slides/keynote.pdf - Google Search
http://www.google.com.hk/search?&q=api+design
- The Little Manual of API Design 【本地下载】
http://chaos.troll.no/~shausman/api-design/api-design.pdf - 《软件框架设计的艺术》 | 英文原版Practical API Design: Confessions of a Java Framework Architect
- Contributing to Eclipse中文版 | 英文原版Contributing to Eclipse : Principles, Patterns, and Plug-Ins
- .NET设计规范 : NET约定、惯用法与模式 | 英文原版Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition)