面向对象,六大原则,设计模式,数据结构与算法,这些知识点都是脱离编程语言存在的。也就意味着它们“比较抽象”,抽象的东西也就意味着从学习、理解到运用所须要花费的时间会比较长。程序员
今天咱们就主要谈谈设计模式的六大原则:算法
首先,六大原则是谁?编程
它们分别是单一职责、开闭原则原则、依赖倒置原则、里氏替换原则、接口隔离原则、迪米特原则。设计模式
其次,为何须要学习这六大原则?安全
六大原则是咱们提升面向对象编程代码质量的必备原则,另外仍是咱们理解设计模式的必备前提。数据结构
弄清楚了学习对象和学习目的,下面就能够进入正题了,这六大设计原则本质上是什么,又分别是用来作什么的,实际中的运用又有哪些?编程语言
1、单一职责编辑器
定义:就一个类而言,应该仅有一个引发它变化的缘由。简单点理解就是,就是一个类只负责一项职责(功能)。学习
从生活中的具体示例理解单一职责,spa
饿了么:单一职责是点餐
2306:单一职责是定火车票
生活中的事物的单一性是为了集中(精力/财力/物力),而后把这一点作到最好,只有这样才能更有竞争力。
而编程中的单一性也是为了集中,一个类它的功能,做用,用途集中到一点。这样能够避免代码冗余,方便管理,方便团队沟通,能提升项目的开发效率
结合Unity 项目开发过程当中,有两个注意点:
①类功能的单一性;
②方法功能的单一性;
一个类只负责一件具体的事情,一个方法只完成一个特定的功能。当你发现一方
法完成了两件事情的时候,就须要适当的重构成两个方法,类也是同样的。
单一职责在unity项目开发中的应用:
①功能类库的单一性:例如UGUI中的JSON就是单一用于解析JSON 的
②引擎组件类功能单一性:在Unity 引擎内有一组灯光组件,是用于实现灯光照射渲染功能的。它根不一样的功能分割成了4 个组件:方向光,点光源,聚光灯,区域光。
2、开闭原则
定义:全称开放封闭原则,软件实体(类,方法,模块)应该能够扩展,可是不能够修改。
在生活中的具体应用,
笔记本电脑
封闭:整个笔记本是封闭的,且笔记本背部标明了“非专业人士,请勿试图拆卸或者维修”以及“撕毁保修无效”的封条。
开放:指的是笔记本提供了若干个USB 的插口,可供咱们扩展。
笔记本上的封闭,是为了保证设备自己的安全。笔记本上的开放,是为用户预留能够扩展的接口。而编程中的封闭,也是为了保证原有的安全,当出现了新的需求,是以扩展的方式,而不是对原有的逻辑进行修改。面对需求,对程序的改动应该是以增长新代码的方式解决,而不是更改旧的代码(这一点在游戏开发方向尤其重要)。
Unity 引擎自己就是开闭原则很好的一个案例。
Unity 官方把这款引擎打包发布出来之后,这个引擎自己程序员是不能够修改的,由于你没有源码--->对修改关闭。可是Unity 引擎提供了“编辑器扩展功能”,提供了一组完整的API,咱们能够经过这组API对Unity 引擎扩展出N 个插件,以知足咱们的特定需求。