如何学好设计,做好架构?_惠州计算机UI设计培训学校
作者:黄君发布时间:2021-06-03分类:惠州计算机学校浏览:833
1. 面向对象
什么是面向对象? 先来看下基本定义:
面向对象是一种风格,会以类作为代码的基本单位,通过对象访问,并拥有封装、继承、多态、抽象四种特性作为基石,可让其更为智能。代表语言Java。
1.1 四大特性(也有人说三种,不要纠结)
封装
封装也被称为信息隐藏。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式(或者叫函数)来访问内部信息或者数据。
将用户信息隐藏在内部,在确实需要访问时,再通过暴露出来的唯一入口进行,这一过程就是封装,合理运用封装可以降低模块间依赖关系(松耦合)。
继承
“继承”是面向对象中的第二特征,体现了类与类之间的“is-a”关系。当两个类进行继承关联绑定的时候,子类自动具备来自于父类的属性和行为。可以提升复用性解决模板代码问题,提升开发效率的同时也解决了错写,漏写带来的问题。
多态
一句话概括"多态":一个对象有多种形态。
合理运用多态可以写出易扩展的代码,基于接口而非实现编程和开闭原则的核心
抽象
抽象的目的是为了隐藏方法的具体实现,让调用者只需要关心方法提供了哪些方法(功能),并不需要知道这些功能是如何实现的。在Java中体现方式是接口和抽象类
接口和抽象类的区别
接口更侧重于功能的设计,并且能将具体实现与调用者隔离,一般要以接口隔离原则设计接口及粒度越细越好抽象类更侧重于提升复用性,在原有的基础上预留扩展点供开发者灵活实现区别:接口可以降低模块间耦合性,抽象类可提升复用性。相同点:均有较好的扩展性,符合开闭原则1.2 诞生背景
谈及面向对象必定离不开面向过程,毕竟它就是由面向过程衍变而来,吸收其大部分优点并解决其痛点。那什么是面向过程呢?基本定义如下:
分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了,更侧重于功能的设计。代表语言C
面向对象在编程之前需要基于四大特性对功能做建模设计,可以提高代码安全性、复用性、扩展性,更易于维护。既然面向对象这么智能为什么面向过程语言还没有被淘汰?其实面向对象语言的智能是针对我们开发者的,为了能让我们能写出易于维护的代码会多做一步设计,虽然离开发者更近了 但离机器却远了,毕竟机器只认识0和1而已。C语言规则简单易于形成机器码,所以执行效率高,这也是其没有被淘汰的原因。
2. 六大设计原则才是一切设计的基石
设计原则是基于面向对象思想衍变出来的一些规则,用来解决实际开发中的一些痛点,是所有设计的底层思想,也是我个人认为是设计/架构领域最重要的知识,所以请大家务必掌握好
2.1 单一设计原则
单一原则很好理解,指一个函数或者一个类再或者一个模块,职责越单一复用性就越强,同时能够间接降低耦合性。
2.2 开闭原则
一句话概括开闭原则:对扩展开放,修改关闭。它即充分诠释抽象、多态特性,又是多数行为型设计模式的基础,遍布于各大优秀框架之中,是最重要的一条设计原则,仅这一条原则就能把你的设计能力提高40%
2.3 迪米特法则
基本概念:不该有直接依赖关系的模块不要有依赖。有依赖关系的模块之间,尽量只依赖必要的接口。迪米特法则很好理解并且非常实用,它和单一设计原则很像,前者符合松耦合后者符合高内聚。
2.4 接口隔离原则
基本概念:接口的调用者不应该依赖它不需要的接口。乍一看与迪米特法则很相似。接口隔离原则与迪米特法则目的很相似,都可以降低模块间依赖关系。但接口隔离更侧重于设计单一接口,提升复用性并间接降低模块间依赖关系,而迪米特法则是直接降低模块间依赖关系。
2.5 里氏替换原则
基本概念:
设计子类的时候,要遵守父类的行为约定。父类定义了函数的行为约定,子类可以改变函数的内部实现逻辑,但不能改变函数原有的行为约定。
里氏替换非常简单并且很容易遵守,在使用继承时,允许复写父类方法,但不要改变其功能。比如自定义View,子类的onMeasure中一定要调用setMeasureaDimission()方法(或者直接使用super),否则会影响父类方法功能(会抛异常),也既违背了里氏替换原则。
2.6 依赖倒置原则
控制反转: 提及依赖倒置便不得不提控制反转,一句话概括:将复杂的程序操作控制权由程序员交给成熟的框架处理,程序员->成熟的框架为反转,框架应暴露出扩展点由程序员实现。
什么是依赖倒置?
高层模块(使用者)不应依赖低层模块(被使用者),它们共同依赖同一个抽象,抽象不要依赖具体实现细节,具体实现细节依赖抽象。
其实核心点就是基于接口而非实现编程,高层模块(业务层)不依赖于低层模块(SQLiteDao/RoomDao),而是依赖于抽象(IDao),可见依赖倒置也是开闭原则扩展而来。 区别是依赖倒置更侧重于指导框架的设计,框架层应该尽量将更多的细节隐藏在内部,对外只暴露抽象(抽象类/接口),指导框架设计这方面核心就是控制反转。
标签:惠州计算机软件培训惠州计算件软件开发惠州计算机软件基础惠州计算机UI设计软件开发惠州UI设计培训学校惠州UI设计培训UI设计基础教程UI设计是什么UI设计教程UI设计入门UI设计培训
- 惠州计算机学校排行
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 江门信息:伪造健在证明材料骗取工伤保险待遇真刑!|||计算机软件培训学校
- 汕头信息:深化组团挂联汕头这场义诊助力百千万工程|||大学生计算机培训学校
- 东莞信息:石龙石龙人社分局持续举办南粤家政技能培训班|||广州计算机编程培训
- 东莞信息:虎门虎门镇首个人才交流服务中心揭牌成立|||计算机职业技能培训班
- 中山信息:中山市人社局持续开展讲诚信不欠薪根治欠薪法治宣传活动|||计算机培训机构
- 东莞信息:南城南城街道开展职业技能展示活动|||计算机网络培训学校
- 东莞信息:东莞市金秋招聘月就业服务行动招聘会暨东莞市第三届全国个体工商户服务月活动|||计算机专业维修学校
- 茂名信息:来宾市人社局赴我市开展劳务协作交流活动|||电脑计算机编程培训学校
- 汕头信息:家政高手同台比武!汕头市举办2024年南粤家政职业技能大赛|||广州市北大青鸟计算机职业培训学校
- 东莞信息:莞城街道金秋招聘月暨重点群体招聘会活动|||广州计算机软件培训