会继续补充内容......
一、面向对象设计原则
1、实现开闭原则的关键在于对系统进行抽象化
2、开闭原则是面向对象的可复用设计的基石。开闭原则是指一个软件实体应当对扩展开放,对修改关闭
3、里氏代换原则是指任何基类对象可以出现的地方,子类对象一定可出现。
二、工厂模式
1、设计模式具有提升软件设计的质量的优点。
2、在面向对象软件开发过程中,采用设计模式可以复用相似问题的相同解决方案
3、观察者模式、职责链模式和策略模式都是行为型设计模式
4、简单工厂模式可以根据参数的不同返回不同的类的实例
5、简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类
6、系统的扩展困难,一旦添加新的产品就不得不修改工厂逻辑,违背了开闭原则
7、在简单工厂模式中,如果需要增加新的具体产品,必须修改工厂类的源代码。
8、在工厂方法模式中引入了抽象工厂类,而具体产品的创建延迟到具体工厂中实现
9、工厂方法模式添加新的产品对象很容易,无须对原有系统进行修改,符合开闭原则
10、工厂方法模式存在的问题是在添加新产品时,需要编写新的具体产品类,而且还要提供与之对应的具体工厂类,随着类个数的增加,会给系统带来一些额外开销
11、抽象工厂模式提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
12、当系统中有多于一个产品族时可以考虑使用抽象工厂模式
13、当一个工厂等级结构可以创建出分属于不同产品等级结构的一个产品族中的所有对象时,抽象工厂模式比工厂方法更为简单、有效率
14、抽象工厂模式提供了创建一系列相关或相互依赖的对象和接口,而无需指定这些对象所属的具体类
15、抽象工厂模式可应用于一个系统要由多个产品系列中的一个来配置的时候
16、抽象工厂模式可应用于强调一系列相关产品对象的设计以便进行联合使用的时候
17、产品族时指位于不同产品等级结构、功能相关的产品组成的家族
18、 一个具体工厂可以创建出分属于不同产品等级结构的一个产品族中的所有对象
19、工厂方法模式对应一个产品等级结构,而抽象工厂模式则需要面对多个产品等级结构
20、抽象工厂设计模式提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
三、生成器模式和单例模式
1、Runtime 类对象是单例对象
2、客户不可以使用构造方法创建 Runtime 对象
3、Runtime 类是 Runtime 对象的标准单例类
4、Director 类隔离了客户类及生产过程
5、 在建造者模式中,客户类通过Director逐步构造一个复杂对象
5、Director 类构建一个抽象建造者Builder子类的对象
6、建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
7、建造者模式允许用户可以只通过指定复杂对象的类型和内容就可以创建它们,而不需要知道内部的具体构建细节
8、当需要生成的产品对象有复杂的内部结构时可以考虑使用建造者模式
9、单例模式能够保证一个类只产生一个唯一的实例
10、懒汉式单例模式在第一次被调用时进行实例化。
11、饿汉式单例模式是线程安全的。
12、懒汉式单例模式比饿汉式单例模式更节省资源。
四、组合模式和适配器模式
1、组合模式使得可以很方便地在组合体中加入新的对象构件,客户端不需要因为加入新的对象构件而更改代码。
2、组合模式对叶子对象和组合对象的使用具有一致性。
3、组合模式将对象组织到树形结构中,可以用来描述整体与部分的关系
4、适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
5、适配器模式将一个按口转换成客户希望的另一个接口,使得原本接口不兼容的那些类可以一起工作。
6、适配器可以在不修改原来的适配者接口Adaptee的情况下将一个类的接口和另一个类的接口匹配起来
7、在类适配器中Adapter和Adaptee是继承关系,而在对象适配器,Adapter和Adaptee是关联关系。