随笔分类 -  设计模式

摘要:我们重心可以放在高级语言上面,但是高级语言中的编译型语言和汇编型语言两者是互相矛盾的。这个时候对于不同的问题我们就应该有不同的策略,如果我们需要开发一个类似于操作系统这样要求执行速度并且开发周期长的系统,我们可以考虑使用编译型语言;如果我们需要开发一个跳一跳这样的娱乐软件,需要快速开发,我们可以考虑 阅读全文
posted @ 2020-12-26 19:12 anobscureretreat 阅读(94) 评论(0) 推荐(0) 编辑
摘要:第一步:浏览器输入域名 例如输入:www.csdn.net/ 第二步:浏览器查找域名的IP地址 浏览器会把输入的域名解析成对应的IP,其过程如下: 1.查找浏览器缓存:因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不一样,一般2-30分钟不等,浏览器去查找这些缓存,如果有缓存,直接返回 阅读全文
posted @ 2019-08-16 02:14 anobscureretreat 阅读(202) 评论(0) 推荐(0) 编辑
摘要:C/S和B/S各有优势,C/S在图形的表现能力上以及运行的速度上肯定是强于B/S模式的,不过缺点就是他需要运行专门的客户端,而且更重要的是它不能跨平台,用c++在windows下写的程序肯定是不能在linux下跑的。而B/S模式就不同了,它不需要专门的客户端,只要浏览器,而浏览器是随操作系统就有的, 阅读全文
posted @ 2019-07-30 12:28 anobscureretreat 阅读(213) 评论(0) 推荐(0) 编辑
摘要:适配器模式 类似于中间件的功能,对不同情况做适配。 定义: 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 功能: 进行转换匹配,目的是复用已有的功能,而不是来实现新的接口。在适配器里实现功能,这种适配器称为智能适配器。 优点: 更好的 阅读全文
posted @ 2018-12-07 14:14 anobscureretreat 阅读(147) 评论(0) 推荐(0) 编辑
摘要:责任链模式 这里针对的是请求,从上层向下层传递。 ##模式介绍 ###模式的定义 一个请求沿着一条“链”传递,直到该“链”上的某个处理者处理它为止。 ###模式的使用场景 一个请求可以被多个处理者处理或处理者未明确指定时。 阅读全文
posted @ 2018-12-07 14:12 anobscureretreat 阅读(119) 评论(0) 推荐(0) 编辑
摘要:观察者模式 类似于回调函数。 首先在Android中,我们往ListView添加数据后,都会调用Adapter的notifyDataChanged()方法,其中使用了观察者模式。 当ListView的数据发生变化时,调用Adapter的notifyDataSetChanged函数,这个函数又会调用D 阅读全文
posted @ 2018-12-07 14:10 anobscureretreat 阅读(158) 评论(0) 推荐(0) 编辑
摘要:#简单工厂 即对象的封装。 ###接口 接口是一种特殊的抽象类,跟一般的抽象类相比,接口里的所有方法都是抽象方法,接口里的所有属性都是常量。也就是说接口里面只有方法定义没有任何方法实现。 接口的思想是"封装隔离" ###简单工厂 示例代码: https://github.com/GeniusVJR/ 阅读全文
posted @ 2018-12-07 14:09 anobscureretreat 阅读(146) 评论(0) 推荐(0) 编辑
摘要:策略模式 从策略的角度对算法进行封装。 ##模式的定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 注:针对同一类型操作,将复杂多样的处理方式分别开来,有选择的实现各自特有的操作。 ##模式的使用场景 针对同一类型问题的 阅读全文
posted @ 2018-12-07 14:07 anobscureretreat 阅读(118) 评论(0) 推荐(0) 编辑
摘要:#常见的面向对象设计原则 高层模块不应该依赖底层模块,二者都应该依赖于抽象。 抽象不应该依赖于具体实现,具体实现应该依赖于抽象。 面向接口编程 优先使用组合,而非继承 一个类需要的数据应该隐藏在类的内部 类之间应该零耦合,或者只有传导耦合,换句话说,类之间要么没关系,要么只使用另一个类的接口提供的操 阅读全文
posted @ 2018-12-07 14:05 anobscureretreat 阅读(136) 评论(0) 推荐(0) 编辑
摘要:#外观模式 即从外观相似的角度进行分装 ###定义 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 ###外观模式的目的 不是给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单的使用子 阅读全文
posted @ 2018-12-07 14:04 anobscureretreat 阅读(124) 评论(0) 推荐(0) 编辑
摘要:#原型模式 即对象的拷贝。 ##模式介绍 ###模式的定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 模式的使用场景 ##Android源码中的模式实现 Intent中使用了原型模式 ##优点与缺点 ###优点 原型模式是在内存二进制流的拷贝,要比直接 new 一个对象性能好很 阅读全文
posted @ 2018-12-07 13:56 anobscureretreat 阅读(167) 评论(0) 推荐(0) 编辑
摘要:单例模式 即只能实例化一个对象。 ###定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 Singleton:负责创建Singleton类自己的唯一实例,并提供一个getInstance的方法,让外部来访问这个类的唯一实例。 饿汉式: private static Singleton u 阅读全文
posted @ 2018-12-07 13:47 anobscureretreat 阅读(127) 评论(0) 推荐(0) 编辑
摘要:#代理模式 类似于临时对象。 ##模式介绍 代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。 ##模式的使用场景 就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间 阅读全文
posted @ 2018-12-07 13:46 anobscureretreat 阅读(129) 评论(0) 推荐(0) 编辑
摘要:#Builder模式 即一种封装。 ##模式介绍 ###模式的定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 ###模式的使用场景 ###Android源码中的模式实现 在Android源码中,我们最常用到的Builder模式就是AlertDialog.Builde 阅读全文
posted @ 2018-12-07 13:45 anobscureretreat 阅读(141) 评论(0) 推荐(0) 编辑