本文已参与「新人创作礼」活动,一起开启掘金创作之路。
工厂方法(FactoryMethod)
-
工厂方法(FactoryMethod)
- FactoryMethod模式是设计模式中应用最为广泛的模式,在面向对象的编程中,对象的创建工作非常简单,对象的创建时机却很重要。FactoryMethod解决的就是这个问题,它通过面向对象的手法,将所要创建的具体对象的创建工作延迟到了子类,从而提供了一种扩展的策略,较好的解决了这种紧耦合的关系。
- 个人理解:在开发人员A便把类实例化(如果不对则会报错,就不会到B手里出错,而传统是B部分才实例化),到了开发人员B手里,可直接使用固定的代码
-
工厂方法举例(在真正的开发工作中,都是合作开发,每个开发人员写部分代码,大家集合在一起就是一个项目)。
- 问题:开发人员A要改代码,例如改类名,把BWM3改成BWM3i,导致开发人员B也要改代码
-
具体代码
- 第一步:宝马车的产品接口
- 第二步:汽车生产工厂接口
- 第三步:开发人员B使用
- 总结:通过工厂把new对象给隔离,通过产品的接口可以接受不同实际产品的实现类,实例的类名的改变不影响其他合作开发人员的编程
- 第一步:宝马车的产品接口
类的成员之五:内部类
-
类的成员之五:内部类
- 在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。
-
inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完整的名称
- inner class的名字不能与包含它的类名相同
- inner class可以使用外部类的私有数据,因为它是外部类的成员,同一个类的成员之间可以相互访问。而外部类要访问内部类中的成员需要:内部类 . 成员或者内部类对象 . 成员。
-
分类:成员内部类(static成员内部类和非static成员内部类)
- 局部内部类(不谈修饰符)、匿名内部类
- 举例
-
内部类的特性
-
inner class作为类的成员:
- 可以声明final
- 和外部类不同,inner class可以声明为private 或 protected
- inner class可以声明为static的,但此时就不能再使用外层类的非static成员变量
-
inner class作为类:
- 可以声明为abstract类,因此可以被其他内部类继承
- 注意:非static的内部类中的成员不能声明为static的,只有在外部类或static的内部类中才可以声明static成员
-
-
内部类的最大作用:实现多重继承
-
举例:类A想同时获得类B和类C的方法并且重写( 可以使用内部类变相的实现类的多重继承,可以同时继承多个类)
- 类A、B、C
- 调用A同时继承实现B、C的方法
- 类A、B、C
-