Java24种设计模式的优点、缺点和适⽤环境总结
java单例模式懒汉和饿汉⼀、7个常⽤的⾯向对象设计原则
1、单⼀职责原则:
  它是实现⾼内聚、低耦合的指导⽅针;⼀个对象应该只包含单⼀的职责,并且该职责被完整的封装在⼀个类中;
2、开闭原则:
  指软件实体应尽量在不改变原有的代码的情况下进⾏扩展;
3、⾥⽒替换原则:
  在运⽤⾥⽒替换原则时应将⽗类设计为抽象类或者接⼝,让⼦类继承⽗类或实现⽗类接⼝,并实现⽗类中声明的⽅法,在运⾏时⼦类实例替换⽗类实例,可以很⽅便的扩展系统的功能,⽆需修改⼦类原有的代码,添加⼀个新功能只需新增⼀个⼦类来实现。
4、依赖倒转原则:
  它要求针对接⼝编程,不要针对实现编程;其在程序代码中传递参数或关联关系中应引⽤层次⾼的抽象层,即使⽤接⼝和抽象类进⾏变量类型声明、参数类型声明、⽅法返回值声明,以及数据转换声明等,⽽不要使⽤具体类来做这些事情。
5、接⼝隔离原则;
  客户端不应该依赖那些不需要的接⼝,应尽量细化,同时接⼝中的⽅法应尽量少,每⼀个接⼝应该遵守单⼀职责,承担⼀种独⽴的⾓⾊。
6、合成复⽤原则:
  优先使⽤组合、聚合,⽽不是⽤继承来达到复⽤的⽬的;降低类与类之间的耦合度,尽量减少⼀个类的变化对其他类造成影响;
7、迪⽶特原则:
  ⼀个模块发⽣修改时应尽量少的影响其他模块,扩展会相对容易,可以通过中间类来转发这个调⽤,来降低现有对象之间的耦合度,如果需要增加或删除,可修改中间类即可;
⼆、24种设计模式归纳:
创建型模式(6种):
  简单⼯⼚模式、⼯⼚⽅法模式、抽象⼯⼚模式、建造者模式、原型模式、单例模式
结构型模式(7种):
  代理模式、适配器模式、装饰器模式、桥接模式、组合模式、亨元模式、外观模式
⾏为型模式(11种):
  模板⽅法模式、策略模式、责任链模式、观察者模式、命令模式
  中介者模式、迭代器模式、解释器模式、备忘录模式、访问者模式、状态模式
三、24种设计模式优缺点及适⽤场景