Design pattern
贾诩是也
走过很多弯路,一直坚强、执着的眺望着远方、、、一个听着小米布斯故事成长起来的老码农。不忘初心,方得始终、、、给自己鼓劲加油,为这个时代华丽的时代喝彩!
展开
-
观察者模式和发布/订阅模式的区别
在事件总线(EventBus)的架构设计中,用到了发布/订阅模式,但发现和观察者模式挺接近,有时容易发生混淆,现试图分清一下他们的关系。 观察者模式的角色为观察者(observer)和主题(subject)对象,observer需要观察subject时,需先到subject里面进行注册(subject对象持有observer对象的集合句柄),然后,当subject对象的内原创 2018-03-06 18:48:07 · 613 阅读 · 1 评论 -
23种模式的比喻启发
创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产...转载 2018-04-16 11:20:59 · 484 阅读 · 0 评论 -
观察者模式
简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。 观察者模式的结构 观察者(Observer)模式是对象的行为型模式,又叫做发表-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-收听者(Source/List...原创 2018-03-03 12:28:02 · 164 阅读 · 0 评论 -
适配器模式
适配器模式: 将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本不兼容的类可以一起工作。类图:角色:-目标接口:Target 客户所期待的接口,目标可以是具体的或者抽象的类也可以是接口-需要适配的类Adaptee:-适配器 Adapter:通过包装一个需要适配的对象,把原接口转换成目标接口。实例:package adapter; 2 3 public interface...转载 2018-03-03 12:25:16 · 114 阅读 · 0 评论 -
原型模式
原型模式: 原型模式是一种创建型模式,通过复制已存在的实例来获得新的实例,而不是新建实例。被复制的实例就是所称的原型,这个原型是可定制的,短时间创建大量对象时,可以考虑使用原型模式Tip:原型模式中的拷贝分为浅拷贝和深拷贝:浅拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象。深拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制。...原创 2018-03-03 12:20:50 · 158 阅读 · 0 评论 -
创建者模式Builder
创建者模式: 分离对象子组件的单独构造(由Builder来负责)和装配(由Director负责),对象的构造比较复杂时使用 该模式。类图:Builder 抽象建造者接口,规范各个组成部分的构建。 ConcreteBuilder 具体建造者角色,实现组成部分的构建,并提供示例。 Product 产品角色,创建返回的对象。 Director 导演者角色,负责创建以及使用。优点: ...原创 2018-03-03 12:18:43 · 165 阅读 · 0 评论 -
设计模式-工厂方法模式
1. 为什么需要工厂方法模式: 工厂方法模式意在分离产品与创建的两个层次,使得用户在一个工厂池中科院选择想使用的产品,而忽略其创建过程。进一步说,就像一个大型工厂,对消费者而言,只需知道都有什么工厂的产品生产出来,而不必关注产品是如何生产的,但对于工厂来说,需要知道产品的制造过程。2.模式角色与类结构图 Creator: 创建工厂的接口 ConcreteCreator: 具体产品实现 P...原创 2018-03-03 12:17:36 · 120 阅读 · 0 评论 -
设计模式-抽象工厂模式
1.为什么需要抽象工厂模式: 提供对象的使用接口,隐藏对象的创建过程。2.类图结构: 3.参与角色AbstractFactory 提供创建对象的接口。 ConcreteFactory 提供真正创建对象的实现类,用于组合并创建不同的对象,实现一个产品族。 AbstractProduct 提供对象的使用接口。 ConcreteProduct 提供真正的适用对象,隐藏该对象的创建过程,是工厂...原创 2018-03-03 12:16:21 · 137 阅读 · 0 评论 -
访问者模式
对于某个对象或者一组对象,不同的访问者,产生的结果不同,执行操作也不同。此时,就是访问者模式的典型应用了。 应用场景 1 不同的子类,依赖于不同的其他对象 2 需要对一组对象,进行许多不相关的操作,又不想在类中是现在这些方法 3 定义的类很少改变,但是执行的操作却经常发生改变。 Context 环境角色class Context{翻译 2018-03-03 12:12:43 · 146 阅读 · 0 评论 -
单例设计模式-java
在实际项目中单例模式常见应用场景列举如下:1.servlet编程中,每个servlet就是单例2.网站计数器,和Application(servlet中涉及)3.Strucs1框架中,控制器对象也是单例4.在Spring中,每个bean默认是单例,便于Spring容器管理5.数据库连接池6.应用程序日志应用一般用单例实现,项目操作配置文件的类单例模式的优点:单例模式只生成一个实例,减少系统性能开销...翻译 2018-03-03 12:09:39 · 156 阅读 · 0 评论 -
Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石...转载 2018-08-16 08:52:55 · 288 阅读 · 0 评论