![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面向对象
文章平均质量分 86
kopmj99
这个作者很懒,什么都没留下…
展开
-
已经是公元2023年了,一定还有这么写代码的Javaer——看如何把简单事情搞复杂的
先来一道开胃菜。这是典型的Javaer对于类似问题的代码写法。尝尝这么写香不香。(将is_tax从int改为tinyint(1))V再来看一个。首先是这个方法名,purchase这个动词说明是跟业务有关系,而且还是一个很大的业务逻辑,而如果真看代码则根本不是那么回事,其实加个get前缀才符合这个方法的气质。其次,宁可用一堆魔数加注释都舍不得定义几个常量。当然,更合适的方式是将这些equals判断放入vo中,然后给方法起一个符合业务的名字,比如 getSubjectOfInputTax()。原创 2023-03-05 13:06:13 · 146 阅读 · 0 评论 -
实体类(Entity)有大量属性且持续增加该如何应对
需要说明的是,不同类型的单据所使用的属性和List引用是不同的,也就是说,当单据实体中持有数据时,只有部分属性和List中是有数据的,其余都是Null。因此,在保存序列化明细项数据的同时,还要保存数据所对应的类的版本标识,如此程序才能够知道用哪个版本的明细项类(Class)来反序列化数据。由于系统中原有的一个核心实体类在业务扩展性方面的表现实在不佳,在每次新增单据类型时,如果这个新增的单据类型有明细项的话,那么就需要为该明细项创建一个明细表,并在单据实体类中添加一个明细项的一对多引用(List)。原创 2022-10-31 23:22:43 · 839 阅读 · 0 评论 -
被代码规范毁掉的Java interface——面向接口编程就是一类一接口吗?
面向接口编程的理念是要基于协议或约定来编程,这里的“接口”指的是一组协议或约定,从代码的层面出发,接口就是能力的抽象,其目的是增强程序的灵活性。可以看到,这些接口中都有撤回,批准,拒绝,退回,添加审批人和转交他人几个方法,个别的接口因为业务差异定义了自己特有的方法,并且以上接口的实现类中的代码也是大同小异。很明显,上图中的那些接口其实只需定义一个“审批”接口便可被全部代替,然后为各具体类型的单据创建实现“审批”接口的类,各实现类中的相同代码还可提取到接口中。的姊妹篇,这两篇文字中的代码均来自于同一个系统。原创 2022-06-19 10:54:34 · 502 阅读 · 0 评论