剑指Offer——知识点储备-设计模式
剑指Offer——知识点储备-设计模式
设计模式
设计模式的六大原则
- (1)单一职责原则(有且仅有一个原因引起类的变化);
- (2)里氏替换(任何父类出现的地方子类都可以替换);
- (3)依赖倒置(依赖抽象而不是依赖具体);
- (4)接口隔离(接口的方法尽量少)(注意:单一职责注意的是类和接口职责单一,是业务上的划分);
- (5)迪米特原则(一个对象应该对其他对象有最少的了解);
- (6)开闭原则(OCP)(对内修改关闭,对外扩展开放);
设计模式的分类
(1)创建型模式:
工厂方法模式(整体对象的创建方法)
抽象工厂模式
创建者模式(部件构造的过程意在部件一步一步精确的构造创建一个复杂的对象)
原型模式(通过复制的方式产生一个新的对象)
单例模式(保持内存中只有一个对象)。
- 创建型模式的核心理念:因为对象的创建会消耗掉系统的很多资源,从而对对象的创建的研究产生这么多优秀的设计模式理念。
(2)结构型模式:
适配器模式(主要对类的类型进行转换)
桥梁模式
组合模式
装饰模式(对类的功能进行加强和减弱)
门面模式
享元模式
代理模式(着重对代理过程的控制:静态代理和动态代理)
- 结构型模式的理念:通过组合类或对象产生更大结构以适应更高层次的逻辑需求。
(3)行为类模式
责任链模式
命令模式
解释器模式
迭代器模式
中介者模式
备忘录模式
观察者模式
状态模式
策略模式
模板方法模式
访问者模式
- 行为类模式的理念:关注管理对象的行为,使他们之间更加高效的协作。
剑指Offer——知识点储备-设计模式的更多相关文章
- 剑指Offer——知识点储备-Java基础
剑指Offer--知识点储备-Java基础 网址来源: http://www.nowcoder.com/discuss/5949?type=0&order=0&pos=4&pa ...
- 剑指Offer——知识点储备--Linux基本命令+Makefile
剑指Offer--知识点储备–Linux基本命令 1.linux下查看进程占用cpu的情况(top): 格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 主要参 ...
- 剑指Offer——知识点储备-常用算法
剑指Offer--知识点储备-常用算法 快速排序 注:若排序是有序的,采用快排,则退化为冒泡排序. 解决这个问题,采用两个选取基准的方法 (1)随机选取基数(在这个区间内随机取一个数) 出现的恶劣情况 ...
- 剑指Offer——知识点储备-网络基础
剑指Offer--知识点储备-网络基础 计算机网络 http和https的区别 (1)http是http协议运行在tcp之上,所传输的内容都是明文,客户端和服务器端都无法验证对方的身份. (2)htt ...
- 剑指Offer——知识点储备-操作系统基础
剑指Offer--知识点储备-操作系统基础 操作系统 操作系统什么情况下会出现死锁? 产生死锁的必要条件 (1)互斥条件:即某个资源在一段时间内只能由一个进程占有,不能同时被两个或两个以上的进程占有, ...
- 剑指Offer——知识点储备-数据库基础
剑指Offer--知识点储备-数据库基础 数据库 事务 事务的四个特性(ACID): 原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Dura ...
- 剑指Offer——知识点储备-故障检测、性能调优与Java类加载机制
剑指Offer--知识点储备-故障检测.性能调优与Java类加载机制 故障检测.性能调优 用什么工具可以查出内存泄露 (1)MerroyAnalyzer:一个功能丰富的java堆转储文件分析工具,可以 ...
- 剑指Offer——知识点储备-JVM基础
剑指Offer--知识点储备-JVM基础 1.java内存与内存溢出 1.1 JVM分为哪些区,每一个区干嘛的?(见java虚拟机38页) (1)程序计数器(线程私有) 当前线程执行字节码的信号指示器 ...
- 剑指Offer——知识点储备-J2EE基础
剑指Offer--知识点储备-J2EE基础 9.2 jdk 1.8的新特性(核心是Lambda 表达式) 参考链接:http://www.bubuko.com/infodetail-690646.ht ...
随机推荐
- Python系列之 - 线程基础
一.什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才 ...
- 【python进阶】详解元类及其应用2
前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...
- 用AJAX实现上传图片或者文件的方法
大家好,我是小C,最近在项目中用到ajax上传图片文件,本篇我们就说说ajax上传文件. 我们平时用到的AJAX,大部分都是传几个参数就可以了.简单说就是传几个字符串. $.ajax({ url: u ...
- servlet之session设置
商品对象,购物车对象,servlet的实现 商品: package app02d;public class Product { private int id; private String ...
- MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用
-- 1.DECLARE EXIT HANDLER FOR SQLEXCEPTION 语句后面可以跟一个 begin end的复合语句块,也可以直接跟一个简单语句例如 :DECLARE EXIT HA ...
- ●POJ 2007 Scrambled Polygon
题链: http://poj.org/problem?id=2007 题解: 计算几何,极角排序 按样例来说,应该就是要把凸包上的i点按 第三像限-第四像限-第一像限-第二像限 的顺序输出. 按 叉积 ...
- 细胞(cell) 矩阵快速幂
题目描述小 X 在上完生物课后对细胞的分裂产生了浓厚的兴趣.于是他决定做实验并观察细胞分裂的规律.他选取了一种特别的细胞,每天每个该细胞可以分裂出 x 1 个新的细胞.小 X 决定第 i 天向培养皿中 ...
- 例10-10 uva10491(简单概率)
题意: 在a+b扇门,a扇后面是牛,b扇后面是车.在你选择一扇门后,主持人为你打开另外c扇门,然后你再选一扇, 求是车的概率 ①先选牛:a/(a+b),然后还剩a+b-c-1扇门,其中b扇为车,所以a ...
- bzoj1853[Scoi2010]幸运数字 容斥
1853: [Scoi2010]幸运数字 Time Limit: 2 Sec Memory Limit: 64 MBSubmit: 3027 Solved: 1128[Submit][Status ...
- 网络硬盘NFS
NFS是网络文件系统,用于计算机间共享文件系统,由sun公司1985年推出的协议,现在已经被广泛使用.一般来说,所有的linux发型版都支持NFS.nfs是一个服务器,客户端的架构,建立一个nfs的服 ...