认识观察者模式 首先来看看报纸订阅的过程 1.报社的业务就是出版报纸 2.向某家报社订阅报纸,只要他们有新报纸出版,就会送过来,只要你是他们的订户 3.当你不想再看报纸的时候,取消订阅,他们就不会再送新报纸 4.只要报社还在运营,就会一直有人来订阅或取消订阅报纸 观察者模式和报纸订阅流程是一样的,只是名字不同.出版社改名为主题(Subject),而订阅者改名为观察者(Observer) 观察者模式的定义 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到…
how to design Programs 学习笔记 */--> how to design Programs 学习笔记 目录 1. 前言 1.1. 系统化程序设计 1.2. 输入和输出 2. Fixed-Size Data 2.1. 函数和程序 1 前言 典型的编程课程采用"修改直到满意为止"的方法. 掌握编程方法,而不是修补直到它工作. 好的编程方法是按照系统化方法,计划,理解从最初开始的每一个阶段.每一步. 系统化程序设计 任何人都可以设计程序 任何人都可以体验创造性设计…
装饰者模式是JDK中还有一个使用较多的设计模式,上一个是观察者模式(在Swing中大量使用),业内好的API设计无一离不开常见的设计模式,通常我们所说要阅读源代码,也是为了学习大牛们的设计思路.----题记 设计模式 观察者模式:定义了对象之间一对多的依赖,这样一来,当一个对象改变状态时.它的全部依赖者都会受到通知并自己主动更新. 装饰者模式:动态地将责任附加到对象上. 若要扩展功能.装饰者提供比继承者更有弹性的替代方案. 设计原则 (1)封装变化. (2)多用组合,少用继承. (3)针对接口编…
观察者模式,当事件发生时,调用相应观察者的方法进行“通知”.Subject中使用一个数据结构存储需要通知的观察者对象,执行Notify时,执行所有观察者的Update方法.…
题目1:几个同事为了在上班期间偷偷看休息,做点其他的事情,就和小秘偷偷联系了一下,如果老板回来了,就麻烦小秘偷偷通知一声,这样方便大家及时变更自己的工作状态. 分析: 根据题目分析,首先明确,肯定会有两个类:小秘类和同事类,分别描述与记录两种类型的人和行为. 需要注意的是:小秘与同事构建联系的时候,一个小秘可能对应多位同事,所以这时需要利用List<>. 实现: class Program { static void Main(string[] args) { Secretary lady =…
2019.4.12 适配器模式,如果某个类需要实现多个方法,但是开发过程中只需要实现其中的一两个方法,直接使用该类的适配器类,复写需要实现的方法即可 观察者模式:有多个观察者observe观察一个主体,当主体发生变化时候,回调观察者绑定的监听器的方法 使用观察者模式,对某个文件夹进行监控 这里使用第三库,apache-common-io,里面有许多有关封装好的IO类,比如文件的复制,移动删除等等 1. 先创建一个FileAlterationObserver FileAlterationObser…
2019.12.17更新 初次见到衍生式设计的时候感觉非常惊艳,现在觉得这个功能就是个弟弟,只能做一些中看不中用的东西.这个方法的理论基础是拓扑优化,想做research的同学可参阅"如何入门拓扑优化研究(转自知乎 周平章博士的文章 很有启发)",https://www.cnblogs.com/hyb221512/p/8981900.html --------------------------------------------- 从2016年开始用SolidWorks.今年暑研项目…
在讲这个问题之前,有一个问题应当讲一下: Ant Design Pro / umi / dva 是什么关系? 首先是 umi / dva 的关系. umi 是一个基于路由的 react 开发框架. dva 是一个基于 redux 和 redux-saga 的数据流方案. 理论上说,他们是平级不重合的. 但是. umi 作为开发框架,在作者设想的 react 依赖体系中是核心地位(类似于电脑中的主板),而且以后会有更多更全的功能. umi 是在 dva 之后开发的,而且作者是同一个人. 所以在这个…
一.概述 Java 的Awt是 Observer模式,现用Java自己模拟awt中Button的运行机制 二.代码 1.Test.java import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; public class Test { public static void mai…
1.AWT简单例子 TestFrame.java import java.awt.Button; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class TestFrame extends F…