课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上文中给大家简单介绍了设计模式等基础知识,同时设计原则也是需要java程序员重点掌握的一个编程知识,下面我们就一起来了解一下,SRP设计原则都有哪些特点。
1)SRP
单一职责原则(SingleResponsibilityPrinciple,SRP)是指一个类或者模块只负责完成一个职责(或者功能),模块可看作比类更加粗粒度的代码块,模块中包含多个类,多个类组成一个模块。
一个类包含了两个或者两个以上业务不相干的功能,那就说它职责不够单一,应该将它拆分成多个功能更加单一、粒度更细的类。
判断类的职责是否足够单一,需要根据具体的应用场景和阶段需求,例如。
(1)如果在社交产品中,用户的地址信息只是单纯地用来展示,那UserInfo可包含地址信息。
(2)如果社交产品中添加了电商模块,用户的地址信息还会用在电商物流中,那好将地址信息从UserInfo中拆分出来。
由此可知,评价一个类的职责是否足够单一,并没有一个非常明确的、可以量化的标准。
下面这几条拆分判断原则,要更有指导意义、更具有可执行性:
(1)类中的代码行数、函数或属性过多,会影响代码的可读性和可维护性,行数好不超过200行,函数个数及属性个数都好不超过10个。
(2)类依赖的其他类过多,或者依赖类的其他类过多,不符合高内聚、低耦合的设计思想。
(3)私有方法过多,就要考虑能否将私有方法独立到新的类中,设置为public方法,提高代码的复用性。
(4)比较难给类起一个合适名字,很难用一个业务名词概括,这就说明类的职责定义得可能不够清晰。
(5)类中大量的方法都是集中操作类中的某几个属性,那就可以考虑将这几个属性和对应的方法拆分出来。
2)OCP
开闭原则(OpenClosedPrinciple,OCP)是指添加一个新的功能,在已有代码基础上扩展代码(新增模块、类、方法等),而非修改已有代码(修改模块、类、方法等)。
注意,没必要纠结某个代码改动是“修改”还是“扩展”,更没必要太纠结它是否违反“开闭原则”。只要没有破坏原有代码和单元测试的正常运行,就可以说,这是一次合格的代码改动。
不过,有些修改是在所难免的,是可以被接受的。尽量让修改操作更集中、更少、更上层,尽量让核心、复杂的那部分逻辑代码满足开闭原则。
偏向顶层的指导思想:多花点时间思考,这段代码未来可能有哪些需求变更、如何设计代码结构,事先留好扩展点,以便在未来需求变更的时候,不改动代码整体结构、做到小代码改动的情况下,新的代码能够很灵活地插入到扩展点上,做到“对扩展开放、对修改关闭”。
实际上,多态、依赖注入、基于接口而非实现编程,以及抽象意识,说的都是同一种设计思路:提升代码扩展性,只是从不同的角度、不同的层面来阐述而已。
希望这辈子,最让你无悔的事情就是来达内学习!学习向来不是件易事,但无论过程多么艰难,希望你依然热爱生活,热爱学习!永远记得,达内将与你一同前行!现在扫码,立即领取万元课程礼包,助力0基础快速入行,为你梳理行业必备技能,全方位了解岗位发展前景!
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。