设计模式
xinglianfly
路漫漫其修远兮,吾将上下而求索。
展开
-
设计模式之策略模式------读书笔记
前言在开发一个系统的过程中,我们可能会时不时的问自己,我们这么设计这块逻辑到底好不好,如果以后需要扩展这部分会不会很困难。有了这么多疑问,我们自然而然的就会想到去寻找问题的答案。幸运的是,Head First设计模式这本书为我们提供了很多问题的解答。我们要善于利用其它开发人员的经验与智慧,他们也曾遇到过相似的问题,也顺利解决过这些问题。这周,读了一下策略模式,读完之后,犹如醍醐灌顶。鸭子的故事...原创 2018-12-01 21:11:01 · 160 阅读 · 0 评论 -
观察者模式读书笔记
一般观察者模式用在一对多的关系中,当一个对象发生改变时,依赖这个对象的其他对象就要自动做出改变。气象站例子这个气象站系统中包含三个部分,气象站代表获取实际气象数据的物理装置,WeatherData对象可以追踪来自气象站的数据,并更新布告板,布告板是展示给用户看的。WeatherData对象知道如何跟物理气象站联系,拿到相应数据之后,会更新布告板,如果我们写代码的话,可能会写成如下样子:p...原创 2018-12-17 21:40:16 · 137 阅读 · 0 评论 -
装饰者模式读书笔记
装饰者模式读书笔记在平时写代码的过程中,大量的继承会造成继承滥用的现象,而我们可以使用组合(composition)和委托(delegation)在运行时具有继承的效果,通过动态的组合对象,可以写新的代码添加新的功能,而无需改变现有代码。既然没有改变现有代码,那么引进bug或者产生意外的副作用机会将大幅度减少。而装饰者模式恰恰是使用对象组合的方式,在运行时装饰类,从而避免使用大量的继承。类应...原创 2019-01-16 21:18:10 · 191 阅读 · 0 评论 -
工厂模式读书笔记
简单工厂模式在我们平时的编码过程中,我们会经常使用到new,而当我们使用new的时候,就会想到"具体",因为我们的确是在实例化一个具体类,这样子,可能会导致代码更脆弱。比如说,我们可能会写出以下代码:Duck duck;if(picnic){duck = new MallardDuck();}else if (hunting){duck = new DecoyDuck();}else...原创 2019-01-22 21:53:23 · 150 阅读 · 0 评论 -
单例模式----读书笔记
单例模式—读书笔记单例模式,顾名思义,就是用来创建一个独一无二的,只能有一个实例的对象的入场券。因为在实际应用中,有些对象我们只需要一个,比如说,线程池、缓存、对话框、注册表等。当然,我们也可以使用全局对象来达到和单例模式一样的作用,但是全局对象有一些缺点,比如说:如果将对象赋值给一个全局变量,那么必须在程序一开始就创建好该对象,如果这个对象很耗资源,但是我们又没有用到它,那就会形成一种浪费。...原创 2019-02-16 20:38:45 · 166 阅读 · 0 评论 -
命令模式----读书笔记
定义命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持撤销操作。例子我们写一个遥控器的例子。在遥控器上按lightOn的按钮,远程控制电灯打开。interface Command {//命令接口,其他命令需要实现该接口 fun excute()} class Light{ fun on(){ ...原创 2019-03-04 10:43:45 · 305 阅读 · 0 评论 -
代理模式------读书笔记
意图代理模式主要是为了控制对象的访问,意图只要有以下三种:1、代理模式主要是为另一个对象提供代理,以控制对另一个对象的访问。2、通过代理间接支持分布式、受控以及智能访问,3、添加一个包装器或者委托以保护真正的组件不受过度复杂性的影响。代理的种类设计一个代理:当客户端第一次请求代理时,就实例化真实的对象,并将引发的请求转发给这个真实的对象。然后,所有之后的请求都直接转发到封装的真实对象。...原创 2019-03-18 18:47:15 · 292 阅读 · 0 评论