一.借鉴说明 1.<Head First Design Patterns>(中文名<深入浅出设计模式>) 2.维基百科,观察者模式,https://zh.wikipedia.org/wiki/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F 3.MSDN,event(C#参考),https://msdn.microsoft.com/zh-cn/library/8627sbea.aspx 二.观察者模式 基础知识 提供一个被观察者(数据库.通…
一.借鉴说明 1.<Head First Design Patterns>(中文名<深入浅出设计模式>) 2.维基百科,策略模式,https://zh.wikipedia.org/wiki/%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F 二.策略模式(Strategy Pattern) 基础知识 将一类相同的算法封装起来,形成算法族,只提供相同的接口给外界,同一算法族内的算法可以互相替换,外界使用时,没有感觉什么不同,即算法族内的算法独立于使用者存在. 具…
介绍 观察者模式又叫发布订阅模式(Publish/Subscribe),一个目标对象管理所有相依于它的观察者对象.该模式中存在两个角色:观察者和被观察者.目标对象与观察者之间的抽象耦合关系能够单独扩展以及重用. 该模式通常有两种实现策略:"推"(push) 和 "拉"(pull) 例:对于报社可能雇佣投送人员四处送报给订阅者,这就是主动推送.而对于规模小的报社没有足够的资源去雇佣投送员,这时候可以采取 "拉" 的方式.就是在订阅者附近提供自己的数…
观察者模式说起来很简单,就是一个订报纸的模式.但是实际上这部分我觉得还是很有意思的,<Head First设计模式>里还有一些还没看完,也是因为理解的不够深吧. 观察者模式会包含两个组件:观察者和主题. 这段代码是主题的接口: package obeserver; public interface Subject { public void registerObserver(Observer observer); public void removeObserver(Observer obse…
观察者模式:定义了对象之间一对多的依赖关系,这样一来,当一个对象的状态发生改变时,它的依赖者将会受到通知并且自动更新. 有一个模式可以帮你的对象知悉现况,不会错过该对象感兴趣的事,对象甚至在运行时可以决定是否要继续被通知---这就是观察者模式. 观察者模式提供了一种对象设计,让主题和观察者之间松耦合. 设计原则:为了交互对象之间的松耦合设计而努力. 要点: 观察者模式定义了对象之间的一对多关系. 主题使用一个共同的接口来更新观察者. 观察者和主题之间用松耦合的方式结合,主题不知道观察者的细节,只…
观察者模式里面有两个东西:观察者(Observer)和目标(Subject).当目标发生变化的时候,观察者随之起舞,也作出相应的变化.此为观察者模式. 这是怎么做到的?主要是目标里面存有一份观察者的名单,当目标变化时,可以按照名单逐一通知,于是观察者们做出自己的响应. public class Client { public static void main(String a[]) { MySubject subject=new Cat(); MyObserver obs1,obs2,obs3;…
目录 1. 语言模型 2. n元语法 3. 语言模型数据集 4. 时序数据的采样 4.1 随机采样 4.2 相邻采样 一段自然语言文本可以看作是一个离散时间序列,给定一个长度为\(T\)的词的序列\(w_1, w_2, \ldots, w_T\),语言模型的目标就是评估该序列是否合理,即计算该序列的概率: \[ P(w_1, w_2, \ldots, w_T). \] 1. 语言模型 假设序列\(w_1, w_2, \ldots, w_T\)中的每个词是依次生成的,我们有 例如,一段含有4个词的…
目录 softmax的基本概念 交叉熵损失函数 模型训练和预测 获取Fashion-MNIST训练集和读取数据 get dataset softmax从零开始的实现 获取训练集数据和测试集数据 模型参数初始化 对多维Tensor按维度操作 定义softmax操作 softmax回归模型 定义损失函数 定义准确率 训练模型 模型预测 softmax的简洁实现 初始化参数和获取数据 定义网络模型 初始化模型参数 定义损失函数 定义优化函数 训练 softmax的基本概念 分类问题 一个简单的图像分类…
HeadFirst设计模式读书笔记(1)-策略模式(Strategy Pattern) HeadFirst设计模式读书笔记(2)-观察者模式(Observer Pattern) HeadFirst设计模式读书笔记(3)-装饰者模式(Decorator Pattern)…
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. 硬件.内核与shell 2. 用户界面<=====>核心Kernal(cpu进程,内存管理.磁盘输入输出)<=====>硬件 3. Shell定义:只要能够操作应用程序的接口,狭义的shell指的是命令行方面的软件,包括bash,广义的shell则包括图形界面的软件 为何要学shell…
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VIM-为什么选择vi编辑器 1. 所有Unix Like系统都会内置vi编辑器,而其他文本编辑器则不一定存在 2. 很多软件的编辑接口都会主动调用vi,例如contab, visudo, edquota 3. vim具有程序编辑能力,可以主动以字体颜色辨别语言正确性 4. 程序简单,编辑速度相当快速…
跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中文文件计划www.linux.org.cn/CLDP 2. 注意信息输出,自行解决疑难杂症 3. 搜寻过后,注意网络礼节,在讨论区大胆发言吧 4. Netman给出的建议: -有系统地设计文件目录,不要随便到处保存文件以至以后不知道放哪里了,或托到文件也不知道为何物 -养成一个做记录的习惯:尤其是发…
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X Window切换至命令行模式: Ctrl + Alt + F1~F6: 文字界面登录 tty1~tty6终端: Ctrl + Alt + F7: 图形界面桌面 2. 命令行模式切换至X Window [garinzhang@ss ~]$ startx 3. 退出bash界面,使用exit 4. ls…
Java 设计模式系列(十五)观察者模式(Observer) Java 设计模式系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Java 设计模式系列(十五)观察者模式(Observer) Java 设计模式系列(十五)Spring 中的监听器模式 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式.模型-视图(Model/View)模式.源-监听器(Source/Listener)模式或从属者(D…
目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一条类加载器链,一般的,我们只会用到一个原生的类加载器,它只加载Java API等可信类,通常只是在本地磁盘中加载,这些类一般就够我们使用了.如果我们需要从远…
http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html 最初写探索设计模式系列的时候,我只是想把它作为自己学习设计模式的读书笔记来写,可是写到今天,设计模式带给我的震撼,以及许多初学者朋友的热心支持,让我下定决心要把这个系列写完写好,那怕花上再多的时间也无所谓.本部分内容不断更新中. 目录计划: 第Ⅰ部分 开篇 开篇 第Ⅱ部分 创建型模式篇 第1章 单件模式(Single Pattern) 第2章 抽象工厂模式(Abstrac…
原文地址:http://terrylee.cnblogs.com/archive/2006/06/01/334911.html 最初写探索设计模式系列的时候,我只是想把它作为自己学习设计模式的读书笔记来写,可是写到今天,设计模式带给我的震撼,以及许多初学者朋友的热心支持,让我下定决心要把这个系列写完写好,那怕花上再多的时间也无所谓.本部分内容不断更新中. 目录计划: 第Ⅰ部分 开篇 开篇 第Ⅱ部分 创建型模式篇 第1章 单件模式(Single Pattern) 第2章 抽象工厂模式(Abstra…
Java系列笔记(1) - Java 类加载与初始化 原文地址:http://www.cnblogs.com/zhguang/p/3154584.html 目录 类加载器 动态加载 链接 初始化 示例 类加载器 在了解Java的机制之前,需要先了解类在JVM(Java虚拟机)中是如何加载的,这对后面理解java其它机制将有重要作用. 每个类编译后产生一个Class对象,存储在.class文件中,JVM使用类加载器(Class Loader)来加载类的字节码文件(.class),类加载器实质上是一…
笔者在开发过程中发现自己基础太薄弱,读书时除了系统学习了一下Java的基础语法和用法.一点简单的数据结构和设计模式之外,再无深入系统的学习,而工作中的学习也是东晃一枪西晃一枪,不够扎实和系统.想到一个学习方法:学到的东西能够系统的表达出来,才说明你学到手了:于是,笔者决定边学边写,将学到的东西以博客的形式表达出来.技术在于积累,在于总结,在于表达,在于分享,这4点都做到了,一个技术才是我们自己的. 本文档会因学习的深入或错误的订正而持续更新,不过由于本人工作较忙(屌丝程序员,加班多,没有钱,你懂…
最初写探索设计模式系列的时候,我只是想把它作为自己学习设计模式的读书笔记来写,可是写到今天,设计模式带给我的震撼,以及许多初学者朋友的热心支持,让我下定决心要把这个系列写完写好,那怕花上再多的时间也无所谓.本部分内容不断更新中. 目录计划: 第Ⅰ部分 开篇 开篇 第Ⅱ部分 创建型模式篇 第1章 单件模式(Single Pattern) 第2章 抽象工厂模式(Abstract Factory) 第3章 建造者模式(Builder Pattern) 第4章 工厂方法(Factory Method)…
写在模式学习之前 什么是设计模式:在我们进行程序设计时,逐渐形成了一些典型问题和问题的解决方式,这就是软件模式:每个模式描写叙述了一个在我们程序设计中常常发生的问题,以及该问题的解决方式:当我们碰到模式所描写叙述的问题,就能够直接用对应的解决方法去解决问题,这就是设计模式. 设计模式就是抽象出来的东西.它不是学出来的,是用出来的:也许你根本不知道不论什么模式.不考虑不论什么模式.却写着最棒的代码,即使以"模式专家"的角度来看,都是最佳的设计.不得不说是"最佳的模式实践&quo…
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7596897.html,记录一下学习过程以备后续查用. 一.引言 接上一篇C#设计模式学习笔记:简单工厂模式(工厂方法模式前奏篇),通过简单工厂模式的了解,它的缺点就是随着需求的变化我们要不停地修改工厂里 上一篇文章我们讲了工厂方法模式,它是为了解决简单工厂模式所面对的问题:如果我们增加新的产品,工厂类的方法就要修改本身的代码,增加产品越 多,其逻辑越复杂,同时这样的修改也不符合开放闭合原则OCP--对增加…
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7567880.html,记录一下学习过程以备后续查用. 一.引言 接上一篇C#设计模式学习笔记:简单工厂模式(工厂方法模式前奏篇),通过简单工厂模式的了解,它的缺点就是随着需求的变化我们要不停地修改工厂里 面的方法的代码,需求变化越多,里面的if--else也越多,这样就会造成简单工厂的实现逻辑过于复杂. 依设计原则里的开闭原则--对增加代码开放,对修改代码关闭,我们不能总是这样修改简单工厂里面的方法. 下…
目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这就是RTTI(Runtime Type Information,运行时类型信息). 在java中,有两种RTTI的方式,一种是传统的,即假设在编译时已经知道了所有的类型:还有一种,是利用反射机制,在运行时再尝试确定类型信息. 本文主要讲反射方式实现的RTTI,建议在阅读本文之前,先了解类的加载机制(…
1 JavaScript设计模式深入分析 私有属性和方法:函数有作用域,在函数内用var 关键字声明的变量在外部无法访问,私有属性和方法本质就是你希望在对象外部无法访问的变量. 特权属性和方法:创建属性和方法时使用的this关键字,因为这些方法定义在构造器的作用域中,所以它们可以访问到私有属性和方法;只有那些需要直接访问私有成员的方法才应该被设计为特权方法. 共有属性和方法:直接链在prototype上的属性和方法,不可以访问构造器内的私有成员,可以访问特权成员,子类会继承所有的共有方法. 共有…
http://www.cnblogs.com/qianxudetianxia/category/312863.html Android设计模式系列(12)--SDK源码之生成器模式(建造者模式) 摘要: 建造者模式把构造和表示分离开,根据客户需求生产一个相应的对象.本来呢,我们根据Builder接口实现不同的具体的ConcreteBuilder,就可生产不同的对象了.但是,下面例子的只有一个Builder,所以也没有接口Builder,也没有其他的ConcreteBuilder.但是我今天要讲的…
javascript设计模式系列   创建型: 1.抽象工厂模式(Abstract Factory) 2.构建者模式(Builder) 3.工厂方法模式(Factory Method) 4.原型模式(Prototype) 5.单例模式(Singleton) 结构型: 1.适配器模式(Adapter) 2.桥接模式(Bridge) 3.组合模式(Compositor) 4.装饰者模式(Decorator) 5.外观模式(Facade) 6.享元模式(Flyweight) 7.代理模式(Proxy)…
设计模式系列文章导航  C#设计模式(1)——单例模式(SingletonPattern) C#设计模式(2)——简单工厂模式(SimpleFactory)    C#设计模式(3)——工厂方法模式(FactoryMethod) C#设计模式(4)——抽象工厂模式(AbstractFactory) C#设计模式(5)——建造者模式(Builder Pattern) C#设计模式(6)——原型模式(Prototype Pattern) C#设计模式(7)——适配器模式(Adapter Patter…
Java成神路上之设计模式系列教程之一 千锋-Feri 在Java工程师的日常中,是否遇到过如下问题: Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式? 什么是设计模式?你是否在你的代码里面使用过任何设计模式? 解释下什么是观察者模式? 使用工厂模式最主要的好处是什么?在哪里使用? 等等相关的问题,那么问题来了,究竟什么是设计模式,它与我们又有什么关系?在我们的日常开发中充当什么样的作用? 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.…
Java深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模式,将使自己对java中的接口或抽象类应用有更深的理解.设计模式在java的中型系统中应用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Observer(观察者)模式是比较常用的一个模式,尤其在界面设计中应用广泛,而本教程所关注的是Java在电子商务系统中应用,因此想从电子商务实例中分析Observer的应用. 虽然网上商店形式多样,每个站点有自己的特色,但也有其一般的共性,单就"…