存在原因
1、不可能为其他的类使用;
2、出于某种原因,不能被其他类引用,可能会引起错误。
3、解决重复代码
使用场景说明
1、封装信息:数据库连接池中对Connection描述信息的封装(上次访问时间,连接次数):使用到了当某个类除了它的外部类,不再被其他的类使用的情况。
2、剥离实现:JDBC中通过调用接口来剥离数据库操作和try-catch引发的事务回滚,减少try-catch出现的次数,具体实现使用匿名内部类实现,其他的用模版方法模式。
3、增强扩展性:一些多算法场合,如Collection.sort(collection,Comparator)
4、改进设计:适当使用内部类,使得代码更加灵活和富有扩展性(如改进工厂模式)
思维导图