课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了Java编程开发程序员需要掌握的一些软件设计原则等内容,而本文我们就再来学习一下,软件设计原则补充原则分享。
一、补充设计原则
1.组合/聚合复用原则(Composition/AggregationReusePrinciple-CARP)
当要扩展类的功能时,优先考虑使用组合,而不是继承。这条原则在23种设计模式中频繁使用,如:代理模式、装饰模式、适配器模式等。可见江湖地位非常之高!
2.无环依赖原则(AcyclicDependenciesPrinciple-ADP)
当A模块依赖于B模块,B模块依赖于C模块,C依赖于A模块,此时将出现循环依赖。在设计中应该避免这个问题,可通过引入"中介者模式"解决该问题。
3.共同封装原则(CommonClosurePrinciple-CCP)
应该将易变的类放在同一个包里,将变化隔离出来。该原则是"开放-封闭原则"的延生。
4.共同重用原则(CommonReusePrinciple-CRP)
如果重用了包中的一个类,那么也就相当于重用了包中的所有类,我们要尽可能减小包的大小。
5.好莱坞原则(HollywoodPrinciple-HP)
好莱坞明星的经纪人一般都很忙,他们不想被打扰,往往会说:Don'tcallme,I'llcallyou.翻译为:不要联系我,我会联系你。对应于软件设计而言,著名的就是"控制反转"(或称为"依赖注入"),我们不需要在代码中主动的创建对象,而是由容器帮我们来创建并管理这些对象。
二、其他设计原则
1.不要重复你自己(Don'trepeatyourself-DRY)
不要让重复的代码到处都是,要让它们足够的重用,所以要尽可能地封装。
2.保持它简单与傻瓜(Keepitsimpleandstupid-KISS)
不要让系统变得复杂,界面简洁,功能实用,操作方便,要让它足够的简单,足够的傻瓜。
3.高内聚与低耦合(HighCohesionandLowCoupling-HCLC)
模块内部需要做到内聚度高,模块之间需要做到耦合度低。
4.惯例优于配置(ConventionoverConfiguration-COC)
尽量让惯例来减少配置,这样才能提高开发效率,尽量做到"零配置"。很多开发框架都是这样做的。
5.命令查询分离(CommandQuerySeparation-CQS)
在定义接口时,要做到哪些是命令,哪些是查询,要将它们分离,而不要揉到一起。
6.关注点分离(SeparationofConcerns-SOC)
将一个复杂的问题分离为多个简单的问题,然后逐个解决这些简单的问题,那么这个复杂的问题就解决了。难就难在如何进行分离。
7.契约式设计(DesignbyContract-DBC)
模块或系统之间的交互,都是基于契约(接口或抽象)的,而不要依赖于具体实现。该原则建议我们要面向契约编程。
8.你不需要它(Youaren'tgonnaneedit-YAGNI)
不要一开始就把系统设计得非常复杂,不要陷入"过度设计"的深渊。应该让系统足够的简单,而却又不失扩展性,这是其中的难点。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。