设计模式
非著名老罗
曾任职知名芯片公司,互联网领军企业,精通Android系统及应用开发。
展开
-
[Java] [设计模式] [创建型模式] [ 建造者模式 - Builder模式 ]
定义将一个复杂对象的构造与它的表示分离,使得同样的构造过程可以创建不同的表示。主要是在创建某个对象时,需要设定很多的参数(通过setter方法),但是这些参数必须按照某个顺序设定,或者是设置步骤不同会得到不同结果。Android中的实例AlertDialog.Builer builder=new AlertDialog.Builder(context);builder.setIcon(R...原创 2018-10-11 16:29:07 · 120 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [适配器模式]
适配器模式定义把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。模型结构适配器模式的分类1、类适配器模式类适配器简单的 UML总结一下就是:适配器「Adapter」继承源类「Src」并且实现目标「Dst」接口,来实现 Src–>Dst 的转换2、对象适配器模式对象适配器简单的 UML总结一下就是:适配器...原创 2018-10-12 15:05:24 · 242 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [装饰模式]
定义动态的给一个对象添加额外的职责,就增加功能来说,装饰模式比子类继承的方式更灵活。我们通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。使用Decorator的理由是:这些功能需要由用户动态决定加入的方式和时机。Decorator提供了”即...原创 2018-10-12 14:54:37 · 223 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [代理模式]
定义给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式有几种,虚拟代理,计数代理,远程代理,动态代理。主要分为两类,静态代理和动态代理。一、静态代理定义静态代理比较简单,是由程序员编写的代理类,并在程序运行前就编译好的,而不是由程序动态产生代理类,这就是所谓的静态。可以通过聚合和继承两种方式实现,继承方式不够灵活,所以只介绍聚合的方式示例interface Subje...原创 2018-10-12 14:52:02 · 328 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [外观模式/门面模式]
定义要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。举个例子,我们在启动计算机时,只需按一下开关键,无需关系里面的磁盘、内存、cpu、电源等等这些如何工作,我们只关心他们帮我启动好了就行。实际上,由于里面的线路太复杂,我们也没办法去具体了解内部电路如何工作。主机提供唯一一个接口“开关键”给用户就好。模式结构示例/** * cpu子系统类 */public class...原创 2018-10-12 14:44:52 · 204 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [模板方法模式]
定义定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定的步骤。示例public abstract class BaseAdvertManager { public void loadAdvert(Context context, int type) { if (NetUtils.checkNetConnect...原创 2018-10-12 14:37:23 · 195 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [ 观察者模式 ]
定义有时被称作发布/订阅模式,其定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。示例Java的Observable类和Observer接口就是实现了观察者模式。一个Observer对象监视着一个Observable对象的变化,当Observable对象发生变化时,Observer得到通知,就可以进...原创 2018-10-12 14:33:16 · 132 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [ 责任链模式 ]
定义使多个对象都有机会处理请求,从而避免请求的发送者和接受者直接的耦合关系,将这些对象连成一条链,并沿这条链传递该请求,直到有对象处理它为止。示例/** * 抽象处理者 */public abstract class Handler { /** * 持有后继的责任对象 */ protected Handler successor; /** ...原创 2018-10-12 14:29:36 · 123 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [ 状态模式 ]
定义状态模式中,行为是由状态来决定的,不同状态下有不同行为。状态模式和策略模式的结构几乎是一模一样的,主要是他们表达的目的和本质是不同。示例public interface TvState { public void nextChannel(); public void prevChannel(); public void turnUp()...原创 2018-10-12 14:24:48 · 154 阅读 · 0 评论 -
[Java] [设计模式] [ 设计模式的六大基本原则 ] 【转载】
六大原则单一职责原则单一原则很简单,就是将一组相关性很高的函数、数据封装到一个类中。换句话说,一个类应该有职责单一。开闭原则开闭原则理解起来也不复杂,就是一个类应该对于扩展是开放的,但是对于修改是封闭的。在一开始编写代码时,就应该注意尽量通过扩展的方式实现新的功能,而不是通过修改已有的代码实现,否则容易破坏原有的系统,也可能带来新的问题,如果发现没办法通过扩展来实现,应该考虑是否是代码结构...原创 2018-10-11 14:56:09 · 201 阅读 · 0 评论 -
[Java] [设计模式] [创建型模式] [ 单例模式 ]
定义确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例。如果某个类,创建时需要消耗很多资源,即new出这个类的代价很大;或者是这个类占用很多内存,如果创建太多这个类实例会导致内存占用太多。上述情况下就应该使用单例模式单例模式特点1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例模式保证了全局...原创 2018-10-11 16:25:35 · 114 阅读 · 0 评论 -
[Java] [设计模式] [行为型模式] [ 策略模式 ]
定义有一系列的算法,将每个算法封装起来(每个算法可以封装到不同的类中),各个算法之间可以替换,策略模式让算法独立于使用它的客户而独立变化。示例public abstract class BaseAdvertManager { protected abstract void doLoadAdvert();}public class FacebookAdvertManager ex...原创 2018-10-11 17:22:54 · 137 阅读 · 0 评论 -
[Java] [ 设计模式 ] [ 设计模式概述 ]
设计模式的分类1.根据目的准则分类 就是说,指定的模式用来完成什么样的工作。可分为三种: (1) Creational (创建型):与对象创建有关。 (2) Structural (结构型):处理类或对象的组合。 (3) Behavioral (行为型):描述类或对象如何交互及如何分配职责。2.根据范围准则分类 即指定的模式用于类还是用于对象,分为两种...原创 2018-10-11 09:19:56 · 173 阅读 · 0 评论 -
[Java] [设计模式] [创建型模式] [ 工厂模式 ]
分类工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式可以分为三类:1)简单工厂模式(Simple Factory)2)工厂方法模式(Factory Method)3)抽象工厂模式(Abstract Factory)一、简单工厂模式定义建立一个工厂(一个函数或一个类方法)来制造新的对象。示例public static Op...原创 2018-10-11 17:05:59 · 136 阅读 · 0 评论 -
[Java] [设计模式][ 创建型模式 ] [ 原型模式 ]
定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。可以在类的属性特别多,但是又要经常对类进行拷贝的时候可以用原型模式,这样代码比较简洁,而且比较方便。拷贝时要注意浅拷贝与深拷贝Java中的clone示例 private HashMap getClonePointMap(Map map) { HashMap clone = new HashMap<&...原创 2018-10-11 16:39:06 · 230 阅读 · 0 评论 -
[软件架构] [MVC模式]
一、深入理解MVC概念,MVC模式是什么MVC即Model-View-Controller。M:逻辑模型,V:视图模型,C:控制器。 MVC模式下,系统框架的类库被划分为3种:模型(Model)、视图(View)、控制器(Controller)。模型对象负责建立数据结构和相应的行为操作处理。视图对象负责在屏幕上渲染出相应的图形信息展示给用户看。控制器对象负责截获用户的按键和屏幕触摸等事...原创 2019-04-12 16:07:40 · 1083 阅读 · 0 评论