设计模式是一套被反复使用的、多数人知晓、经过分类编目的优秀代码设计经验的总结。特定环境下特定问题的处理方法。
•重用设计和代码 重用设计比重用代码更有意义,自动带来代码重用
•提高扩展性 大量使用面向接口编程,预留扩展插槽,新的功能或特性很容易加入到系统中来。
•提高灵活性 通过组合提高灵活性,可允许代码修改平稳发生,对一处修改不会波及到其他模块。
•提高开发效率 正确使用设计模式,可以节省大量的时间。


面向对象设计原则是面向对象设计的基石,面向对象设计质量的依据和保障,设计模式是面向对象设计原则的经典应用。
(1)单一职责原则 :SRP
(2)开闭原则:OCP
(3)里氏替代原则:LSP
(4)依赖注入原则:DIP
(5)接口分离原则:ISP
(6)迪米特原则:LOD
(7)组合/聚合复用原则:CARP
开闭原则具有理想主义色彩,它是面向对象设计的终极目标。其它设计原则都可以看作是开闭原则的实现手段或方法。
。
java IO中需要完成对不同输入输出源的操作,如果单纯的使用继承这一方式,无疑需要很多的类。比如说,我们操作文件需要一个类,实现文件的字节读取需要一个类,实现文件的字符读取又需要一个类....依次类推每个特定的操作都需要一个特定的类。这无疑会导致大量的IO继承类的出现。显然对于编程是很不利的。
而使用装饰模式则可以很好的解决这一问题,在装饰模式中:节点流(如FileInputStream)直接与输入源交互,之后通过过滤流(FilterInputStream)进行装饰,这样获得的io对象便具有某几个的功能,很好的拓展了IO的功能。

原文:https://www.cnblogs.com/ren549047861/p/11294276.html