
面向对象设计
元无心
2023年尽量不摆烂
展开
-
接口与插排之关系
今天有人问我接口的意义,其实接口的意义很明确,主要是为了增强扩展性和修改性,降低耦合度,一旦需求发生变化,只需要修改而且也是对类之间关系的一个有益的补充,可以进一步实现多态。并且,接口是一种规范,一种契约,实现了某个接口,也就实现了对应的方法,相当于具有了某种身份;看到一个接口,就知道这个类有相对应的功能,提高了可读性。但是又回到了那个问题,为什么呢?好处确实是有,但是泛泛而谈显然让人体会不到...原创 2019-03-07 20:58:33 · 538 阅读 · 1 评论 -
面向对象设计随感
面向对象不一定要有类,类只不过是一种组织数据的方式罢了。因为软件的本质是用代码对现实世界问题域的建模,是问题域到代码的映射,所以只要能做到结构保持,形式倒不那么重要。类其实是一种设计模式。个人感觉类是为了解决软件开发中日益增长的复杂性,而发明出来的更大粒度的代码抽象。因为在大型项目中,如果采用过程化的设计(这里的定义可能有点狭隘,这里单指那种结构化的低层设计,指的并不是那种整体的架构风格),函...原创 2019-04-19 20:46:33 · 182 阅读 · 0 评论 -
组合优于继承:面向对象原则、内聚、耦合随感
这些设计的基本目标都是为了达到易理解、易修改、易复用。基本上,职责会发生改变的时候需要使用组合。继承固然实现了高度复用,随之而来的是面对变更时的不灵活。组合可以更灵活地实现职责的分配。违反LSP的时候也需要组合,用来复用逻辑上的“父类”的代码。在这种情况下,只需要复用“父类”几个方法的代码,但不需要实现其他方法。因为在这个场景下,继承不适用(违反了LSP),就需要分离出一个接口,然后进行组合;...原创 2019-06-10 23:12:08 · 608 阅读 · 0 评论 -
模拟Hibernate注解的思考:何为注解
关于注解,之前看到了一篇文章,写得真的很不错。我是没想到,有一天JavaScript也会有注解。尤其是当它“升级”到TypeScript之后,它就逐渐活成了Java的样子。“长大之后,我就成了你”?至于为什么要有注解,我个人的直观感受是简单,比起那种复杂的配置文件要舒服很多。当然,也不仅仅是简单,这里面有一些深层次的设计哲学,这里面体现了约定优于配置...原创 2019-03-31 17:44:24 · 209 阅读 · 0 评论