Java架构-一些设计上的基本常识

心已赠人 2022-04-13 12:21 373阅读 0赞

最近给团队新人讲了一些设计上的常识,可能会对其它的新人也有些帮助, 把暂时想到的几条,先记在这里。

1、API与SPI分离

框架或组件通常有两类客户,一个是使用者,一个是扩展者。 API(Application Programming Interface)是给使用者用的, 而SPI(Service Provide Interface)是给扩展者用的。 在设计时,尽量把它们隔离开,而不要混在一起, 也就是说,使用者是看不到扩展者写的实现的。

比如:

  1. 一个Web框架,它有一个API接口叫Action, 里面有个execute()方法,是给使用者用来写业务逻辑的。然后,Web框架有一个SPI接口给扩展者控制输出方式。
  2. velocity模板输出还是用json输出等, 如果这个Web框架使用一个都继承Action的VelocityAction和一个JsonAction做为扩展方式, 要用velocity模板输出的就继承VelocityAction,要用json输出的就继承JsonAction, 这就是API和SPI没有分离的反面例子。

SPI接口混在了API接口中,合理的方式是,有一个单独的Renderer接口,有VelocityRenderer和JsonRenderer实现, Web框架将Action的输出转交给Renderer接口做渲染输出。

原文链接

发表评论

表情:
评论列表 (有 0 条评论,373人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Go语言一些基本常识

    > Go语言是谷歌2009发布的第二款开源编程语言。 > Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全

    相关 关于一些常识总结

    这些天上网,查到了不少新的知识,在此处总结一下。 //8.24号 h5相当于h4的洗一个版本,增添和删除了某些标签,同时更改了一些功能 图片格式的转换在于编码方式的

    相关 架构设计---对于架构一些思考

      其实说到架构的话,我个人觉得没有什么可以说的,无论是以前常说的SOA,还是现在流行的微服务,其实无非就是CAP原理的一些运用而已(可伸缩、可扩展、容错),无非就是牺牲可用性

    相关 Golang基本常识

    一 注释 1 点睛 用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性。 注释是一个程序员必须药具有的良好的编程习惯。将自己的思想通过注释先整理出来,再用