鸣谢:《大话设计模式》
是结束亦是开始,引用《大话设计模式》书中最后一章的一段话:书籍一定会有最后一页,但你的面向对象编程之路或许才刚刚开始,
相信通过你的努力,你的人生会更加精彩
备注:
开放-封闭原则是面向对象设计的核心所在。遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而,对于应用程序中的每个部分都刻意地进行抽象同样不是一个好主意。
拒绝不成熟的抽象和抽象本身一样重要.
类是对对象的抽象,抽象类是对类的抽象,接口是对行为的抽象。
抽象类是自底而上抽象出来的,而接口则是自顶向下设计出来的
创建型模式
简单工厂模式不是GOF里面的设计模式,所以总共23种设计模式
- 工厂方法模式
设计模式——5.工厂方法模式(工厂也有子工厂) -
抽象工厂模式
设计模式——11.抽象工厂模式(无缝切换产品系)
标黄的是平时用的比较多的
结构型模式
- 适配器模式
设计模式——13.适配器模式(我们真的不合适吗?) -
装饰模式
设计模式——3.装饰模式 -
代理模式
设计模式——4.代理模式(中间商赚差价)
标黄的是平时用的比较多的
行为型模式
- 策略模式
设计模式——2.策略模式 -
观察者模式
设计模式——10.观察者模式(小蜜也是卧底) -
责任链模式
设计模式——20.责任链模式(只缘身在此山中) -
模板方法模式
设计模式——7.模板方法模式(卷子干嘛要抄呀) -
解释器模式
设计模式——23.解释器模式(语言也需要解释)
标黄的是平时用的比较多的
7 大设计原则
不能全部遵守 , 也不能不遵守 , 注意平衡 功能 和 系统复杂度 , 找到最合适的一个点 ;
- 单一职责原则(Single Responsibility Principle - SRP):
这个原则规定一个类应该只有一个改变的理由,也就是说,一个类应该只有一个单一的职责。这有助于保持类的简单性和可维护性,因为每个类只需关注一个特定的功能。
- 开放-封闭原则(Open-Closed Principle - OCP):
开放-封闭原则要求系统中的软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。这意味着当需要添加新功能时,应该通过扩展现有代码来实现,而不是修改原有代码。
- 里氏替换原则(Liskov Substitution Principle - LSP):
里氏替换原则规定,子类应该能够替换其父类,而不会影响程序的正确性。也就是说,子类应该继承父类的行为,但可以扩展或修改该行为,但不应该改变父类的行为。
- 接口隔离原则(Interface Segregation Principle - ISP):
接口隔离原则要求一个类不应该强迫其客户端依赖于它们不需要的接口。应该根据客户端的需求定义小而精确的接口,而不是大而笨重的接口。
- 依赖倒置原则(Dependency Inversion Principle - DIP):
依赖倒置原则要求高级模块不应该依赖于低级模块,它们都应该依赖于抽象。具体来说,这意味着应该通过抽象接口或抽象类来定义模块之间的依赖关系,而不是直接依赖于具体实现。抽象不应该依赖细节。细节应该依赖抽象。
- 迪米特法则(Law of Demeter - LoD):
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
- 合成复用原则(Composite Reuse Principle - CRP):
合成复用原则鼓励通过组合(合成)已有的类来实现新功能,而不是通过继承现有的类。这样可以降低系统的耦合度,并且更加灵活。
源码位置
全部源码github.com/xs-alpha/designPattern
参考文献
- 《大话设计模式》
-
慕课视频《Java设计模式精讲 Debug方式+内存分析》
如有内容侵权,麻烦联系博主删除