一、单例模式
定义:确保一个类只有一个实例,并且提供一个整个系统都能访问的入口。
要满足前半段话就要求他是private的,即不能被外界别的实例化。
后半段话需要提供一个静态方法来向外界提供当前类的实例
二、简单工厂模式
又称为静态工厂方法。根据参数的不同来返回不同类的实例,也就是说工厂类是专门用来创建其他类实例的类。
例如一个处理时间的简单工厂类,可以根据传入的参数来判断是要生成“年月日”还是“日月年”的形式。
三、代理模式
定义:为其他对象提供一种代理以控制对这个对象的访问。
将源头和目标分离,类似于一个大师一直在闭关修炼不问尘事,留了一个弟子在外当接口人,你要向大师拜师或者送东西都需要通过这个弟子。通过这种方式,你不需要知道大师在哪,只要通过弟子就能联系到大师,而大师也不需要知道你在哪,只需要知道有人要拜师或者送了东西给他,这样就可以规避很多琐事。
四、生成器模式
封装一个复杂对象的构造过程,并允许按照步骤构造。
比如要造一间房子,你拥有无尽的权利,可以制造所有东西,你可能需要制造四面墙,一个屋顶,一块地板,一盏灯,一张桌子,一个椅子。有的人还要一些古董,而有的人需要一个冰箱,但这些并不是所有人都需要的。没有什么是免费的,造一些不需要的东西是没必要的。所以我们可以把制造某些东西的能力抽取出来,比如我只需要四面墙,一个屋顶,一块地板,一面镜子就够了,那就把造这四种东西的能力抽取出来,放到一个叫生成器的机器人身上,我要建造的时候就只需要叫这个机器人去造就好了。
甚至进一步的,可以造四个生成器,每个生成器只负责一件事,一个生成器负责造墙,另一个负责造镜子。
更进一步,可以造一个主管,将调用生成器建造的步骤抽取成单独的主管类,由主管类来控制建造步骤的执行顺序,而生成器则扶着实现这些步骤。
五、适配器模式
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
比如说手机平时是可以正常使用的,但如果要拿到水下使用就不行,这就是接口和场景不匹配,所以我们需要一个防水袋类,我们在水下实际操作的是防水袋而不是手机,但我们成功的在不匹配的情况下用了手机。
六、责任链模式
责任链模式是一种处理请求的模式,它让多个处理器都有机会处理该请求,直到其中某个处理成功为止。责任链模式把多个处理器串成链,然后让请求在链上传递。
每一部分只关心自己职责范围内的请求,对于超出自己职责范围的请求交给下一个审核者审核
七、策略模式
定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式让算法独立于使用它的客户而变化。
八、迭代器模式
迭代器模式可以在不暴露集合底层表现形式(链表、栈、树等)的情况下遍历集合中所有的元素。