Lesson14_设计模式_OO终结
回顾
抽象类
- abstract
- 不可以创建对象
- 抽象方法 ==> 抽象类
模板方法
- 一套流程(有步骤)
接口
-
interface 关键字声明一个接口
-
表示能力 \ 制定规范(“做什么”)
-
属性全是public static final修饰
-
方法全是public abstract修饰
-
JDK8开始可以有default和static修饰的带有方法体的方法
类和类是单继承 A extends B
类和接口是多实现 A implements IB,IC,ID
接口和接口是多继承 IA extends IB,IC,ID
简单工厂
*工厂方法
*抽象工厂模式
创建对象,把创建对象和使用对象进行解耦。
对象使用者只需要和工厂打交道即可。
如果有了新的对象类型产生,只需要修改工厂即可。
// 简单工厂类
public class GFFactory {
// 工厂方法
public static BaseGF createGF(String gfType){
switch(gfType){
case "山东":
return new ShandongGF();
case "四川":
return new SzechwanGF();
case "广东":
return new GuangdongGF();
default:
System.err.println("商品已售罄");
return null;
}
}
}
public class FruitFactory {
public static Fruit generateFruit(String name){
switch(name){
case "苹果":
return new Apple("红富士");
case "香蕉":
return new Banana("帝王蕉");
case "橙子":
return new Orange("甜橙");
default:
System.err.println("该水果已下架");
return null;
}
}
}
策略模式
把算法封装成类,让这些算法类实现相同的父类型,从而在计算过程中具备可替换性。
*残剑的博客——类与类之间的关系
*多态的9个题
内部类
自动拆装箱
枚举
3S StringBuilder
常用类
Date
SimpleDateFormat
Calendar
Math
Random