在Javascript如何理解单一职责原则
对于函数我能理解一个函数只做一件事;可是对于类的描述就理解不了了,什么叫“每个类都应该有一个单一的功能,一个类应该只有一个发生变化的原因。”如我有个Person类,这个类“发生变化”指什么,名字改变?职业改变?这些我都要新建一个类?请举例说明下个,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Person (人)
按照常理来说,人(Person)会有很多项技能(Ability),比如 吃饭(Eat) 、 睡觉(Sleep) 、 工作(Work)。这些都是和人(Person) 有关系,但又不是绝对关系的,比如 婴儿(Baby) 和 老人(OldMan),也是属于人,但是他们是不用工作(Work) 的,所以如果你把 (Eat,Sleep,Work),都作为 Person 的方法的话,肯定是不合适的,应该把这些都拆分出来,先定义一个 技能接口或者父类(Ability)
然后,分别把(Eat,Sleep,Work)新建一个类并继承或实现技能(Ability),这样就做到了各司其职,代码复用。
但是关于人都有的固定信息,比如你户口本上或者身份证这些信息都是可做为 Person 类的属性。
可参考这篇文章 如何定义一个类——单一职责原则
这篇文章的意思应该是说
发布消息
跟取消消息
可以看做是单一职责,因为这两个动作是属于一个系列的。而如果这个类里面有
转换时间
的话,就不是了。因为时间处理跟消息不相关。