6种经典的设计模式
设计模式主要分为三大类:创建型、结构性、行为型
提供一种在创建对象的同时隐藏创建逻辑的方法,而不是使用new运算符直接实例化对象。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。
这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
其中,单例模式有分为懒汉模式和饿汉模式。懒汉模式是指在创建类的时候即自己创建实例,
饿汉模式是在使用该类的时候判断是否已经创建了单一实例,否则创建。其好处防止该类在多处被加载。
定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类。最常见的应用就是根据传入的参数
来决定来实例化那个子类。
虚拟工厂我的个人理解是在工厂模式的基础上再在工厂的上一层在虚拟出一个工厂,即工厂的工厂。
关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
是作为两个不兼容的接口之间的桥梁。
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。
适配器的基本含义我个人理解是当一个现有对象可以达到基本的功能,只是和新功能的接口不匹配,
将新接口的功能转换成原有接口可以识别和处理的数据。例如在UML种的mp3播放器不能播放MP4的文件,
可以将通过适配器将MP4转成MP3文件。但是在过程中可以有一点变通,通过直接调用MP4播放器直接播放,
当然根据不同的接口适配到不同的接口类也是一种适配方式。
它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。
说白了就是将类的抽象(包括属性和基本方法)和关键的方法抽离开来。
允许向一个现有的对象添加新的功能,同时又不改变其结构。
这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。
有点类似于Android里的功能增强。
对象之间的通信
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
定义一个list存储所有的依赖对象,在状态改变的方法后,通知所有依赖对象改变(对应的对象里面应该有相应的状态反应方法);
观察者对象在构建时需要建立和被观察对象的以来关系。





