![](https://img-blog.csdnimg.cn/20200803213430878.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java设计模式详解
如果你要想在 Java 界做得风生水起,游刃有余,设计模式必不可少
程序驿站 | ityizhan.net
这个作者很懒,什么都没留下…
展开
-
玩转设计模式:单例模式
单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点应用场景优点由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决常见的五种单例模式实现方式饿汉式: 线程安全,调用效率高,不能延时加载懒汉式: 线程安全,调用效率不高,可以延时加载双重检测锁: 由于JVM底层内部模型原因,偶尔会出问题,不建议使用静态内部类: 线程安全,调用效率高,可以延时加原创 2020-08-10 22:44:59 · 81 阅读 · 0 评论 -
充分了解UML类图
UML(Unified Modeling Language)统一建模语言由于UML类图的精确、无歧义、完整的建模,通常我们通过使用UML类图来详细的描述系统中的对象和他们的关系。认识UML类图也能帮助我们快速了解、理清系统中对象之间的关系类图表示方式在UML类图中,包含类名、属性和方法三块如下图所示,包含了name、age、email三个属性以及方法userInfo()属性和方法前面的符号表示了可见性,UML类图中表示可见性的符号如下+ : 表示public- : 表示private#原创 2020-08-08 10:28:33 · 248 阅读 · 0 评论 -
面向对象设计原则-开闭原则
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。我们将在下面的几节中依次来介绍这 7 条原则,本节首先介绍开闭原则。开闭原则(Open Closed Principle,OCP) 软件实体应当对扩展开放,对修改关闭(Software entities should ...原创 2020-01-26 10:34:51 · 238 阅读 · 0 评论 -
面向对象设计原则-单一职责原则
单一职责原则(Single Responsibility Principle,SRP) 单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a class to change)。 该原则提出对象不应该承担太多职责,如果一个对象承担了太多的职责,至少存在以下两个缺点: ...原创 2020-01-26 22:10:05 · 157 阅读 · 0 评论 -
面向对象设计原则-里氏替换原则
里氏替换原则(Liskov Substitution Principle,LSP) 继承必须确保超类所拥有的性质在子类中仍然成立(Inheritance should ensure that any property proved about supertype objects also holds for subtype objects)。 里氏替换原则主要阐述了有关继承的一些原则...原创 2020-01-26 10:48:11 · 265 阅读 · 0 评论 -
面向对象设计原则-依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP) 依赖倒置原则的原始定义为:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon abstraction...原创 2020-01-26 22:03:53 · 157 阅读 · 0 评论 -
面向对象设计原则-接口隔离原则
接口隔离原则(Interface Segregation Principle,ISP) 接口隔离原则要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口,让接口中只包含客户感兴趣的方法。 客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on methods they do not use)。该原则还有另外一个定义:一个...原创 2020-01-26 22:15:03 · 130 阅读 · 0 评论 -
面向对象设计原则-合成复用原则
合成复用原则(Composite Reuse Principle,CRP) 合成复用原则又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 如果要使用继承关系,则必须严格遵循里氏替换原则。 合成复用原则同里氏替换原则相辅相成的,两者都是...原创 2020-01-26 22:23:33 · 292 阅读 · 0 评论 -
面向对象设计原则-迪米特法则
迪米特法则(Law of Demeter, LoD)一个软件实体应当尽可能少的与其他实体发生相互作用如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩张相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度和深度。迪米特法则可降低系统的耦合度,使类与类之间保持松散的耦合关系迪米特法则还有几种定义形式,包括:不要和“陌生人”说话、只与你的直接朋友通信等,在迪米特法则中,对于一个对象,其朋友包括以下几类:当前对象本身(this)以参原创 2020-08-08 22:01:33 · 161 阅读 · 0 评论 -
为什么要学习设计模式
为什么要学习设计模式首先给大家分享一句话放眼未来,拥抱变化,是非常值得推荐的,反之,也可以用另一种思路看待问题,放眼未来,关注不变的东西,进而抓住事物的本质显然学习设计模式就是在变化中寻求不变,设计模式是经过沉淀的东西。从编程的角度来说:设计模式是一套被反复使用的、多数人知晓的、经过分类编程的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式本质就是设计原则的落地,而设计原则的本质就是经验。经验是我们在历史劳动中对实践的总结,来指导我们当下或未来把原创 2020-08-10 21:16:07 · 545 阅读 · 1 评论 -
设计模式总体概述
设计模式分类创建型模式(五种): 单例模式、工程方法模式、抽象工厂模式、建造者模式、原型模式结构型模式(七种): 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式行为型模式(十一种): 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式创建模式:用于创建对象单例模式(Singleton)保证一个类只有一个实例,并且提供一个访问该实例的全局访问点工程方法模式(FactoryMethod)定原创 2020-08-10 21:16:43 · 98 阅读 · 0 评论 -
设计模式之创建型模式
设计模式的分类创建型模式(五种): 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式(七种): 适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、亨元模式行为型模式(十一种): 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式设计模式的六大原则. 总的原则:开闭原则(Open ...原创 2019-04-24 08:45:08 · 151 阅读 · 0 评论 -
设计模式之结构型模式
结构型模式 核心作用: 是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题 分类: 适配器模式、代理模式、桥接模式、装饰模式、组合模式、外观模式、享元模式汇总:代理模式: 为真实对象提供一个代理,从而控制对真实对象的访问适配模式: 使原本由于接口不兼容不能一起工作的类可以一起工作桥接模式: 处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结...原创 2019-04-24 14:52:42 · 130 阅读 · 0 评论 -
设计模式之行为型模式
行为型模式行为型模式: 关注系统中对象之间的相互交互,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责,创建型模式: 关注对象的创建过程结构型模式: 关注对象和类的组织行为模式汇总 责任链模式: 避免请求发送者和接收者耦合,让多个对象都有可能接收请求,将这些对象连成一条链,并且沿着这条链传递请求,直到有对象处理为止 命令模式: 将一个请求封装为一个对象,从而使得请求...原创 2019-04-24 22:45:28 · 153 阅读 · 0 评论