随笔分类 - 设计模式专题
写一些关于设计模式的文章。
摘要:为什么使用代理模式 中介隔离:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。 开闭原则,增加功能代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额外的功能来扩展委托类的功能,这样做
阅读全文
摘要:什么是责任链模式 客户端发出一个请求,链上的对象都有机会来处理这一请求,而客户端不需要知道谁是具体的处理对象。这样就实现了请求者和接受者之间的解耦,并且在客户端可以实现动态的组合职责链。使编程更有灵活性。 定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成
阅读全文
摘要:什么是观察者模式 在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。 其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 观察者模式应用场景 Zookeeper事件通知节点、消息订阅通知、安卓开发事件注册、分布式
阅读全文
摘要:什么是外观模式 外观模式(Facade Pattern)门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用
阅读全文
摘要:什么是适配器 在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 适配器分类 适配器分为,类适配器、对象适
阅读全文
摘要:什么是模板方法 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的 重复代码全部在父类里面,不同业务的,抽取给子类进行实现。抽取过程 抽象方法。 某些特定步骤。 核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不
阅读全文
摘要:什么是建造者模式 建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结
阅读全文
摘要:什么是工厂模式 实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂(比较少)模式。 工厂模式好处 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。 利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。 将选择实现类、创建对象统一管理和控制
阅读全文
摘要:什么是策略模式 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,最终可以实现解决多重if判断问题。 1.环境(Context)角色:持有一个Strategy的引用。 2.抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有
阅读全文
摘要:什么是单例模式 保证在一个Jvm中,只能存在一个实例,保证对象的唯一性。 保证一个类只有一个实例,并且提供一个访问该全局访问点。 单例模式的应用场景 Spring框架(默认是单例的)、Servlet、Struts2、SpringMvc、连接池、线程池、枚举、常量。 1. Windows的Task M
阅读全文
摘要:为什么需要使用设计模式 使用设计模式可以重构整体架构代码、提交代码复用性、扩展性 设计模式分类 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略
阅读全文