1. 接口中的方法都是抽象方法,接口中的属性都是常量(public static final)
2.接口的作用:定义实现类的外观,也就是实现类的行为定义,用于约束实现类的行为。
3.接口的思想就是“封装隔离”,通常的封装指的是对数据的封装,但这里的封装是只“对被隔离体的行为的封装”,或者说对被隔离体的 职责的封装, 隔离指的是外部调用和内部实现,外部调用只能通过接口调用,内部实现 是被接口分开的
4.使用接口的好处,由于外部调用通过内部接口进行调用的,只要接口不变,内部实现的变化就不会影响到外部应用,从而使得更灵活,接口是系统可插拔性的保证
5.接口和抽象类的选择, 优先选择接口,如果既要定义子类的行为又要为子类提供公共的功能时应选择抽象类
6.面对接口编程是java 的一个重要原则
7.java 一般分为三个层次 表现层、逻辑层、和数据层,之间通过接口来通信,“接口是被其隔离部分的外观”
8.组件:从设计上讲就是完成一定功能的封装体
9.简单工厂的定义:提供一个创建对象实例的功能,二无需关心其具体实现,被创建的类型可以是接口、抽象类,也可以是具体的类---- 简单工厂能帮助我们真正的开始面向接口编程
10.简单工厂的功能: 可以用来创建接口,也可以创建抽象类或普通类的实例
11.静态工厂:使用简单工厂的时候,通常不用创建简单工厂类的实例,没有创建实例的必要,因此可以吧简单工厂类实现为一个工具类,直接使用静态方法就可以了。,简单工厂的方法通常是静态的,也成为静态工厂。防止客户端无谓的创建实例还可以把构造方法私有化
12.万能工厂: 工厂类中可以有多个创建实例方法的方法。
13.简单工厂方法的内部主要实现的功能是“选择合适的实现类”来创建实例对象,需要选择的条件或者参数:
1)来源于客户端,由客户端传入参数 (需要暴露参数,用户可能会知道部分细节)
2)来源于配置文件获取用于判断的值 (灵活,不要一直修改工厂类)
3)来源于程序运行期的某个值。
14.简单工厂优点:实现了组件的封装,让组件外部能真正面向接口编程;解耦,通过简单工厂实现了客户端和具体实现类的解耦
15.简单工厂缺点:增加客户端的复杂度,如果通过参数去选择具体的实现类,那么就必须让客户端理解参数的含义和具体功能,也部分暴露了内部实现,这种情况下可以选用可配置的方式来实现。; 不方便拓展子类。
16.简单工厂的本质:选择实现(和封装隔离(外部可以直接使用接口,不需要知道实现类))
17.如何选择简单工厂:
1) 如果需要完全封装隔离具体实现,让外部只能通过接口来操作封装体,那么可以选用简单工厂,让客户端通过工厂来获取相应的接口,无需关注具体的实现。
2)如果想要把对外创建对象的职责集中管理和控制,可以选用简单工厂,一个简单工厂可以创建很多的不相关的对象,将对象的创建职责集中到一个简单工厂,实现集中管理和控制