研磨专题

《研磨设计模式》读书笔记

《研磨设计模式》——陈臣.王斌. 《研磨设计模式》读书笔记 第二章简单工厂 事实上,简单工厂能帮助我们真正地开始面向接口编程,像以前的做法,其实只是用到了接口的多态部分的功能,而最重要的“封装隔离性”并没有提现出来。 第三章外观模式          把客户端对模块的调用工作交给接口类去统一完成,客户端只关心接口类的使用方法,直接获得结果。文中的找配电脑公司给你配置电脑的例子

《研磨设计模式》chap4 适配器模式Adapter

1. 转换匹配, 复用功能: 原来是文件类的读写接口read, write,新的方式是数据库的add ,update,insert, delete接口。 现在要用新的数据库方式,但同时保存原来的文件读写。 解决方法: 外面看上去是新接口,里面调用和实现的却是旧接口。 2. 双向适配器 在db的add,remove,update,get的接口里面用file的方式实现在file的re

《研磨设计模式》chap3 外观模式Facade

1. 场景1 客户自己装机,需要一一去买配件:cpu、主板。。。 找专业的公司,由公司去处理: 2. 场景2 代码生成工具有4个模块 client使用时依次创建3个对象 public class Client {public static void main(String[] args) {//现在没有配置文件,就直接使用默认的配置//通常情况下,三层都应该生成,也就是说客户端必须

《研磨设计模式》chap2 简单工厂simplefactory

1. 不用工程模式,直接生成类 //某个接口(通用的、抽象的、非具体的功能的) public interface Api {/*** 某个具体的功能方法的定义,用test1来演示一下。* 这里的功能很简单,把传入的s打印输出即可 * @param s 任意想要打印输出的字符串*/public void test1(String s);}//对接口的实现 public class

《研磨设计模式》chap5 单例模式singleton

1. 模式介绍 1.1 饱汉式单例实现 public class Singleton {//定义一个变量来存储创建好的类实例 private static Singleton uniqueInstance = null;private Singleton(){//}//定义一个方法来为客户端提供类实例 public static synchronized Singleton getInstan

《研磨设计模式》chap6 工厂模式factory(2)案例实现

1. 用工厂模式实现案例 public interface ExportFileApi {//导出内容成为文件 public boolean export(String data);}public class ExportDB implements ExportFileApi{public boolean export(String data) { }}public class Exp

《研磨设计模式》chap6 工厂模式factory(1)模式简介

场景:导出多种数据格式的文件,有txt的,有数据库的。 1. 简单工厂的实现方式 public interface ExportFileApi {//导出内容成为文件 public boolean export(String data);}//导出成文本文件格式的对象 public class ExportTxtFile implements ExportFileApi{public bo

《研磨设计模式》chap25 访问者模式Visitor(3)联合组合模式+总结

1. 联合组合模式 //抽象的组件对象,相当于访问者模式中的元素对象 public abstract class Component {//接受访问者的访问 public abstract void accept(Visitor visitor);//向组合对象中加入组件对象 public void addChild(Component child) {// 缺省的实现,抛出例外,因为叶子

《研磨设计模式》chap24 桥接模式bridge(2)场景应用

1. 模式应用到场景中 public abstract class AbstractMessage {//持有一个实现部分的对象 protected MessageImplementor impl;public AbstractMessage(MessageImplementor impl){this.impl = impl;}public void sendMessage(String m

《研磨设计模式》chap24 桥接模式bridge(1)基本概念

场景:现有“email“、“sms手机消息“两种发送消息方式,要加个是否“紧急消息“的类型区分,如何设计类? 1. 正常编码(不使用模式) 如果又要来个“特急“”类型,那类就更多了,这样肯定不好 2. 模式介绍 实际上场景是一种二维目标的应用(编者语)。 把x轴看成抽象类型,把y轴看成实现类型。 public interface Implementor {/*** 示例方法,实

《研磨设计模式》chap21 解释器模式Interpreter(2)parse模型

1. 定义 读取表达式,构建抽象语法树,叶子类,节点类,context上下文 step1:分解表达式,得到需要解析的元素名称和该元素对应的解析模型 step2:根据节点的属性转换成为相应的解释器对象 step3:组合抽象语法树,一定要按照先后顺序来组合,否则对象的包含关系就乱了 2. 2.1 第1步:分解表达式 /*** 按照从左到右顺序来分解表达式,得到需要解析的元素名称,*

《研磨设计模式》chap21 解释器模式Interpreter(1)模式介绍

场景:读写xml文件,如果代码"写死了":谁是谁的child,万一文件父子节点改了,又要改代码。 1. 正常编码(不使用模式) public class ReadAppXml {/*** 读取配置文件内容* @param filePathName 配置文件的路径和文件名* @throws Exception*/public void read(String filePathName)throw

《研磨设计模式》chap20 享元模式 Flyweight (4)总结

1. 不共享的外部状态 输入数据为: 张三,人员列表,查看,1 李四,人员列表,查看,1 李四,操作薪资数据,2 " 操作薪资数据"包括"薪资数据,查看",“薪资数据,修改” public class UnsharedConcreteFlyweight implements Flyweight{//记录每个组合对象所包含的子组件 private List<Flyweight> list =

精酿啤酒:麦芽的研磨与糖化工艺

在啤酒酿造过程中,麦芽的研磨和糖化工艺是重要的环节,它们直接影响到啤酒的口感和品质。对于Fendi Club啤酒来说,这一环节同样关键。下面,我们将深入探讨Fendi Club啤酒在麦芽研磨和糖化工艺方面的与众不同之处。 首先,麦芽的研磨是酿造啤酒的首步。对于Fendi Club啤酒而言,研磨的精细程度和均匀性对于后续的糖化过程和啤酒的口感重要。在研磨过程中,麦芽的皮和胚乳被破碎成适当的粒度

研磨设计模式之 工厂方法模式-5

3.3  平行的类层次结构 (1)什么是平行的类层次结构呢?    简单点说,假如有两个类层次结构,其中一个类层次中的每个类在另一个类层次中都有一个对应的类的结构,就被称为平行的类层次结构。   举个例子来说,硬盘对象有很多种,如分成台式机硬盘和笔记本硬盘,在台式机硬盘的具体实现上面,又有希捷、西数等不同品牌的实现,同样在笔记本硬盘上,也有希捷、日立、IBM等不同品牌的实现;硬盘对象具有自己

研磨设计模式之 工厂方法模式-4

3.2  工厂方法模式与IoC/DI  IoC——Inversion of Control  控制反转  DI——Dependency Injection   依赖注入 1:如何理解IoC/DI         要想理解上面两个概念,就必须搞清楚如下的问题: 参与者都有谁?依赖:谁依赖于谁?为什么需要依赖? 注入:谁注入于谁?到底注入什么?控制反转:谁控制谁?控制什么?为何叫反转(有

研磨设计模式之 单例模式-4

3.8  在Java中一种更好的单例实现方式         根据上面的分析,常见的两种单例实现方式都存在小小的缺陷,那么有没有一种方案,既能够实现延迟加载,又能够实现线程安全呢?         还真有高人想到这样的解决方案了,这个解决方案被称为Lazy initialization holder class模式,这个模式综合使用了Java的类级内部类和多线程缺省同步锁的知识,很巧妙的同时

研磨设计模式之 单例模式-3

3.3  延迟加载的思想         单例模式的懒汉式实现方式体现了延迟加载的思想,什么是延迟加载呢?         通俗点说,就是一开始不要加载资源或者数据,一直等,等到马上就要使用这个资源或者数据了,躲不过去了才加载,所以也称Lazy Load,不是懒惰啊,是“延迟加载”,这在实际开发中是一种很常见的思想,尽可能的节约资源。         体现在什么地方呢?看如下代码:

研磨设计模式之 单例模式-2

3  模式讲解 3.1  认识单例模式 (1)单例模式的功能         单例模式的功能是用来保证这个类在运行期间只会被创建一个类实例,另外单例模式还提供了一个全局唯一访问这个类实例的访问点,就是那个getInstance的方法。不管采用懒汉式还是饿汉式的实现方式,这个全局访问点是一样的。         对于单例模式而言,不管采用何种实现方式,它都是只关心类实例的创建问题,并不关心

研磨设计模式之 单例模式-1

单例模式(Singleton)   1  场景问题 1.1  读取配置文件的内容         考虑这样一个应用,读取配置文件的内容。         很多应用项目,都有与应用相关的配置文件,这些配置文件多是由项目开发人员自定义的,在里面定义一些应用需要的参数数据。当然在实际的项目中,这种配置文件多采用xml格式的。也有采用properties格式的,毕竟使用Java来读取pr

研磨设计模式之简单工厂模式-2

2  解决方案 1  简单工厂来解决         用来解决上述问题的一个合理的解决方案就是简单工厂,那么什么是简单工厂呢? 1:简单工厂定义   2:应用简单工厂来解决的思路         分析上面的问题,虽然不能让模块外部知道模块内的具体实现,但是模块内部是可以知道实现类的,而且创建接口是需要具体实现类的。         那么干脆在模块内部新建一个类,在这个类里面来创

研磨设计模式之简单工厂模式-1

简单工厂         简单工厂不是一个标准的设计模式,但是它实在是太常用了,简单而又神奇,所以还是需要好好掌握的,就当是对学习设计模式的热身运动吧。         为了保持一致性,我们尽量按照学习其它模式的步骤来进行学习。 1  场景问题         大家都知道,在Java应用开发中,要“面向接口编程”。         那么什么是接口?接口有什么作用?接口如何使用?

中国研磨和沉淀碳酸钙(GCC和PCC)“十四五”发展规划与未来前景展望报告2021年版

1 研磨和沉淀碳酸钙(GCC和PCC)市场概述 1.1 产品定义及统计范围 1.2 按照不同产品类型,研磨和沉淀碳酸钙(GCC和PCC)主要可以分为如下几个类别 1.2.1 不同类型研磨和沉淀碳酸钙(GCC和PCC)增长趋势2018 VS 2021 VS 2027 1.2.2 GCC 1.2.3 PCC 1.3 从不同应用,研磨和沉淀碳酸钙(GCC和PCC)主要包括如下几个方面 1.3.1 纸