设计模式六大原则

1. 单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。


  单一职责原则的核心精神是:一个类或者一个接口,只负责一项职责。因为职责过多的话,当一项职责发生变化时能会引起其它职责的变化,这样导致职责和功能上的依赖,将严重影响其内聚性和耦合度。

  遵循单一职责原的优点有:
 
  a.可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;

  b.提高类的可读性,提高系统的可维护性;

  c.如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

2. 开放封闭原则(ASD):软件实体(类、模块、函数等等等)应该是可以拓展的,但是不可修改。

  开放-封闭原则的意思就是说,你设计的时候,时刻要考虑,尽量让这个类是足够好,写好了就不要去修改了,如果新需求来,我们增加一些类就完事了,原来的代码能不动则不动。这个原则有两个特性,一个是说“对于扩展是开放的”,另一个是说“对于更改是封闭的”。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。这就是“开放-封闭原则”的精神所在了。


  开闭原则的核心思想就是抽象编程,而不是对具体,因为抽象是相对稳定的,再说了我们还有接口(好多地方接口和抽象类都放一块儿说了)。让类依赖于固定的抽象对象,即可以达到封闭修改的目的;而通过面向对象的继承和多态机制,又可以实现对抽象类的继承,通过复写其方法来改变固有的行为操作,也可以实现新的拓展方法,即可以达到开放的目的。

3. 里氏替换原则(LSP):子类型必须能够替换掉它们的父类。

  一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别,也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化
 

  里氏代换原则是实现开闭原则的重要方式之一,由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。

  里氏替换原则主要发力点是继承基础上的抽象和多态,具体就是子类必须实现父类的方法,是重写;这里要注意重写(Override)与重载(Overload)的区分。

 

  在此重温【重写与重载】

  方法的重载,就是同样的一个方法能够根据输入数据的不同,做出不同的处理——有不同的参数列表,甚至不同的返回值(静态多态性)
  方法的在重写,是子类继承自父类的相同方法,输入参数一样,但要做出有别于父类的操作,要覆盖父类方法。——相同参数,相同返回值,不同实现(动态多态性)


4. 依赖倒置原则(DIP)
 

  定义:高层模块不应该依赖低层模块,两个都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。

  依赖倒转其实就是谁也不要依靠谁,除了约定的接口,大家都可以灵活自如。依赖倒转可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了。如果设计的各个部件或类相互依赖,这样就是耦合度高,难以维护和扩展,这也就体现不出面向对象的好处了。


5. 迪米特原则(LOD):一个软件实体应当尽可能少地与其他实体发生相互作用。

  

  迪米特法则又叫最少知道原则也称为最少知识原则。如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度和深度。迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系。

  

  米特法则其根本思想,是强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成影响,也就是说,信息的隐藏促进了软件的复用。

6. 接口隔离原则(ISP)

  接口隔离原则的含义是:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。也就是说,我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。

  采用接口隔离原则对接口进行约束时,要注意以下几点:

  a.接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性,但是如果过小,则会造成接口数量过多,使设计复杂化。所以一定要适度。
  b.依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。只有专注地为一个模块提供定制服务,才能建立最小的依赖关系。
  c.提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。


  学会这几大原则可以有效地的提高系统的复用性,维护性,扩展性。让我们做出的系统更简洁、更高效。这部分知识还需要我们在日后实践中不断加强学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值