java oo原则_javaOO11-12:面向对象的设计原则、线程
面向对象的设计原则:
1、单一职责原则:一个类只应该做和一个职责相关的业务,不要让一个类承担过多的职责。(高内聚)
2、开闭原则:软件实体应该面向修改关闭,面向扩展开放。其实现的核心就是抽象。将相同的代码抽取出来,便于代码重用,这就是闭。将不同的代码抽取出来,便于功能的拓展,这就是开。开闭原则是设计原则的核心原则。
3、依赖倒置原则:面向抽象编程,不要面向具体编程。尽量使用抽象耦合代替具体耦合。(低耦合)
4、聚合/组合复用原则:尽量使用聚合/组合达到代码复用,少用继承实现代码复用。因为在java中只能单根继承,无法使用继承达到多个类代码的重用。但是使用聚合/组合方式可以实现多个类代码的重用。
5、里氏替换原则:父类出现的地方,子类一定可以替换。如果父类中的方法在子类中发生了畸变,则应该断开父子关系。父类中的属性和方法,子类无条件继承。这样容易造成父类方法在子类中不适用情况。所以,如果父类方法不能全部适用于子类,则建议断开父子关系,采用聚合/组合达到代码复用。
6、接口隔离原则:使用专门的接口比用统一接口好,便于项目的组织和分工。不要让开发者面对自己用不到的方法。
7、迪米特法则:软件实体之间应该尽量减少交互,不要因为一个类业务的变化,而导致另一个类的变化。(外观模式)
多任务处理:一个任务没有完成时,又在进行别的任务。
多任务处理有两种类型:基于进程和基于线程
进程是指一种“自包容”的运行程序,由操作系统直接管理,直接运行,有自己的地址空间,每个进程一开启都会消耗内存
在一个程序中,能独立运行的程序片段叫做“线程”(Thread),线程是进程内部单一的顺序控制流
一个进程拥有多个线程。多个线程共享一个进程的内存空间。
主线程:简单的说,main方法一执行,就开启了主线程。每个进程至少都有一个主线程。
主线程的特点:
1、最先开始
2、最后结束
3、产生其他的子线程
4、子线程结束,清理子线程占用的内存资源
一个程序一运行,至少开始开启两个线程,主线程和垃圾回收线程
创建线程有两种方式:
1、继承Thread类,重写run()方法
2、实现Runnable接口,实现run()方法
启动线程采用start()方法
调用线程类中的run()方法和start()方法的区别
调用start()方法,会在主线程之外,单独开启子线程,多个线程同时执行。
调用run()方法,是普通方法调用,不会开启子线程,是单任务处理。在一个任务结束后,才能执行下一个任务
线程的优先级
线程的优先级是指,当两个或两个以上的线程同时处于就绪状态时,优先级高的线程会优先得到执行。
优先级有10个级别,越高优先级越高。setPriority(int newp)设置优先级、getPriority()得到优先级
线程的同步
线程同步是指,当两个或两个以上的线程,同时访问同一个资源时,为了确保数据的安全,只允许同一个时间点,同一个共享资源只被一个线程进行访问
线程同步带来的结果:1、数据安全,2、效率低下。
java oo原则_javaOO11-12:面向对象的设计原则、线程相关推荐
- Java程序员最应该学习的几个面向对象的设计原则
2019独角兽企业重金招聘Python工程师标准>>> 面向对象的设计原则是OOP编程的核心,但我已经看到大多数Java程序员追逐设计模式,如Singleton模式,Decorato ...
- Java 面向对象的设计原则
一. 1.面向对象思想的核心: 封装.继承.多态. 2.面向对象编程的追求: 高内聚低耦合的解决方案: 代码的模块化设计: 3.什么是设计模式: 针对反复出现的问题的经典解决方案,是对特定条件下( ...
- 面向对象的设计原则最终篇
点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 关于面向对象的设计原则我之前已经解释过四种了,分别是单一职责原则,开放关闭原则,里式替换原则, ...
- 【腾讯游戏面试题】面向对象的设计原则是什么?
本文首发公众号洪流学堂.洪流学堂,让你快人几步. 今天分享一个腾讯游戏的面试题: 题目 请说出面向对象的设计原则,并分别简述它们的含义. 参考答案 单一职责原则 一个类只负责一个功能领域中的相应职责. ...
- 面向对象的设计原则-类设计原则
面向对象的设计原则-类设计原则 排行榜 收藏 打印 发给朋友 举报发布者:七月十五 热度票 浏览1368次 [共4条评论][我要评论]时间:2008年11月08日 10:55 在面向对象设计中,如何 ...
- 软件工程之面向对象的设计原则
一.面向对象介绍 1.面向过程 以"过程"为中心的编程思想,分析出解决问题所需的步骤,然后用函数把这些步骤一步步的实现,使用的时候一个个依次调 用就好.面向过程强调的是模块化. 2 ...
- 面向对象六大设计原则上
@TOC面向对象六大设计原则 最近准备java面试,发现SSM框架里蛮多知识点,比如Spring中IOC,DI来源于面向对象的六大原则,了解六大原则有助于更深入理解java的设计原理.网上资料很多,整 ...
- UML面向对象的设计原则
UML面向对象的设计原则 里氏替换原则 不满足LSP的方案 CS游戏中的枪械类图,士兵使用枪杀敌,具体用什么枪,调用的时候才知道.有一种玩具手枪,增加一个类ToyGun,射不出子弹,业务调用类出现了问 ...
- PHP核心技术笔记(2):面向对象的设计原则
1.面向对象设计五大原则 面向对象设计的五大原则分别是单一职责原则.接口隔离原则.开放-封闭原则.替换原则.依赖倒置原则. 2.单一职责原则(single Pesponsibility Princip ...
最新文章
- python linux编程与window编程_Python实现Windows和Linux之间互相传输文件(文件夹)的方法...
- Windbg中使用查找内存并设置访问断点
- python编码问题总结
- 跟燕十八学习PHP-第十五天-php增删改查表数据
- icoding复习5 树 感觉难度巨大....
- (stack栈)rails
- gateway 车辆网关
- TreeView中右击直接获取节点的方法
- javascript模块 (Module) 简介
- Android Glide数据更新及内存缓存、硬盘缓存清理
- linux能记录日志的终端,如何记录Linux终端下的操作日志
- VirtualBox中安装Ubuntu、LAMP、SVN、JRE和Tomcat
- ProGuard的各种参数说明
- 财子说丨王国斌:相信时间的力量
- 如何选择和设置SEO关键词
- drupal 电商网站_为什么小型企业应该为电子商务网站选择Drupal
- 天道酬勤,仅仅两年,我便做上了那个测试老大···
- Python对二维矩阵沿主对角线(次对角线)翻转变换代码实现
- Android开发常见面试
- c语言开头的作用是什么,C语言为什么开头都加;#includestdio.h有什么作用?
热门文章
- 计算机技术Control,聚变控制计算机 (Fusion Control Computer)
- python中函数包括参数函数吗_Python中的函数---函数的定义和参数
- l4d2服务器修改武器伤害,辐射4武器伤害及护甲修改图文教程_快吧单机游戏
- Mybatis plus 开启日志
- 计算机组成原理 试讲,常州信息职业技术学院-试讲ppt-计算机组成原理-信息表示.ppt...
- python使用t-sne算法降维,方便可视化
- 解决pytorch多进程ValueError: Error initializing torch.distributed using env:// rendezvou...报错
- from gluonts.trainer import Trainer报错
- mpi4py安装报错error: Cannot compile MPI programs. Check your configuration!!!
- springboot 前缀_springboot插件式开发框架