简单工厂模式 简单工厂模式并不属于GoF的23种设计模式。 那么为什么我要用工厂模式呢?请看下面的一段程序。 不难看出,Fruit类是一个“巨大的”类,在该类的设计中存在如下几个问题: (1) 在Fruit类中包含很多“if…else…”代码块,整个类的代码相当冗长 ...
分类:
其他好文 时间:
2019-08-21 13:29:04
阅读次数:
75
普通单例类设计: MomoBehavior类的设计: ...
分类:
其他好文 时间:
2019-08-18 18:11:21
阅读次数:
103
抽象方法:使用abstract修饰的方法,没有方法体,只有声明。 抽象类:包含抽象方法的类就是抽象类、通过抽象类,我们可以做到严格限制子类的设计,使子类之间更加通用 使用要点:1.有抽象方法的类职能定义为抽象类 2.抽象类不能实例化,不能用new来实例化抽象类 3.抽象类可以包含属性、方法、构造方法 ...
分类:
其他好文 时间:
2019-08-18 11:25:12
阅读次数:
83
1、I/O分类与装饰者模式 基本java I/O包含两种类型的流,字节流(inputStream、outputStream)与字符流(Writer,Reader),关于I/O操作类的设计,用到了装饰者模式,如下图所示。 其中FilterInputStream抽象类继承了InputStream抽象类, ...
分类:
编程语言 时间:
2019-08-13 00:44:55
阅读次数:
138
上一节写了ReentrantLock, 那这一节就正好来写积蓄已久的1.7 concurrentHashMap了。因为1.7里面concurrentHashMap里面的segment是继承自ReentrantLock的。 我认为理解这个类有几个重点: 1. 理解这个类的设计和Hashtable有什么 ...
分类:
其他好文 时间:
2019-08-02 22:41:41
阅读次数:
110
Spider基本上能做很多事情了,但是如果你想爬取全站的话,可能需要一个更强大的武器。CrawlSpider基于Spider,但是可以说是为全站爬取而生。CrawlSpiders是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页,而CrawlSpider类定义了一 ...
分类:
其他好文 时间:
2019-06-21 12:47:02
阅读次数:
81
1.抽象类 (1)概念 ? 从多个具有相同特征的类中抽象出一个使用abstract修饰的类,以这个抽象类作为其子类模板,从而避免子类设计的随意性。抽象类的设计是一种 模板模式 的设计模式。 (2)特点 抽象类、抽象属性、抽象方法都不需要open修饰符,open修饰符和abstract不能共存。 抽象 ...
分类:
其他好文 时间:
2019-05-29 11:53:08
阅读次数:
127
面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 据在数据库中存储大概是这个样子,怎么实现无限极递归呢,有两种常用的做法,递归和引用算法 引用算法 ...
分类:
Web程序 时间:
2019-05-27 13:26:34
阅读次数:
151
公共部分 过渡部分 私有部分 如果没有办法划分出明确的区域, 则可以使用过渡区来 放置这些东西, 如果说将来发现 放错了地方,可以从过渡区里把它拿走 私有部分应该是各个类自己特殊的 怎么判断要构造哪些类,他们应该放在哪里 首先需要明白写这个类是为了做什么 为了实现功能 这个功能是业务功能还是基础设施 ...
分类:
其他好文 时间:
2019-05-15 23:58:40
阅读次数:
218
花了一个下午+晚上来写权限控制类,删改了很多次(感谢V站大哥们的提议),目前个人感觉挺满意的,主要是以下几点花了点工夫 1.设计模式上的应用,factory+observer+strategy(反射实现),不过factory没写什么特别的,就加多个缓存 2.权限设计的随意,对于添加标签,外部只需给出 ...
分类:
其他好文 时间:
2019-05-12 10:49:09
阅读次数:
108