![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
23种设计模式
文章平均质量分 87
简明编程
CSDN简明编程,掘金白嫖圣手fly,其他地方均不是本人,若发现他人盗用本人原创文章请联系我,各种资料均免费,需要请私信
展开
-
UML统一建模语言(UML类图)
关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师和学生、师傅和徒弟、丈夫和妻子等。依赖关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。类类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系。聚合关系是关联关系的一种,是强关联关系,是整体和部分之间的关系。原创 2022-08-23 02:34:51 · 770 阅读 · 0 评论 -
Java23种设计模式系列——结构型模式之享元模式day5-1
/外部化publicvoiddisplay(Stringcolor){System.out.println("形状"+getShape()+"\n颜色}}原创 2022-07-19 23:57:39 · 127 阅读 · 0 评论 -
Java23种设计模式系列——结构型模式之组合模式day4-3
安全组合模式的缺点是不够透明,因为叶子构件和容器构件具有不同的方法,且容器构件中那些用于管理成员对象的方法没有在抽象构件类中定义,因此客户端不能完全针对抽象编程,必须有区别地对待叶子构件和容器构件。透明组合模式的缺点是不够安全,因为叶子对象和容器对象在本质上是有区别的,叶子对象不可能有下一个层次的对象,即不可能包含成员对象,因此为其提供非必要重写方法是没有意义的,这在编译阶段不会出错,但在运行阶段如果调用这些方法可能会出错(如果没有提供相应的错误处理代码)透明组合模式也是组合模式的标准形式。...原创 2022-07-19 22:24:42 · 158 阅读 · 0 评论 -
Java23种设计模式系列——结构型模式之外观模式day4-2
又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。外观(Facade)模式是“迪米特法则"的典型应用。不符合开闭原则,修改起来很麻烦。...原创 2022-07-19 04:43:52 · 113 阅读 · 0 评论 -
Java23种设计模式系列——结构型模式之桥接模式day4-1
将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。原创 2022-07-19 04:02:30 · 90 阅读 · 0 评论 -
Java23种设计模式系列——结构型模式之装饰者模式day3-3
指在不改变现有对象结构的情况下,动态地给该对象增加一-些职责(即增加其额外功能)的模式。静态代理是在代理类内部创建,以此来隐藏目标对象。装饰者是由外界传递进来,可以通过构造方法传递。静态代理是为了保护和隐藏目标对象。装饰者是为了增强目标对象。...原创 2022-07-19 03:28:25 · 105 阅读 · 0 评论 -
Java23种设计模式系列——结构型模式之适配器模式day3-2
适配器模式分为类适配器模式和对象适配器模式,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。采用将现有组件库中已经实现的组件引入适配器类中,该类同时实现当前系统业务接口。违背了合成复用原则,类适配器是客户类有一个接口规范的情况下使用,否则不用。,添加构造方法,以此完成内部聚合。实现方式梳理(最推荐第三种)完成目标转换为适配者。...原创 2022-07-19 02:08:31 · 92 阅读 · 0 评论 -
Java23种设计模式系列——结构型模式之代理模式day3-1
在JDK1.6、JDK1.7.JDK1.8逐步对JDK动态代理优化之后,在调用次数较少的情况下,JDK代理效率高于CGLIB代理效率,只有当进行大量调用的时候,JDK1.6和JDK1.z比CGLIB代理效率低一点,但是到JDK1.8的时候,JDK代理效率高于CGLIB代理。Java中提供了一个动态代理类Proxy,Proxy并不是我们上述所说的代理对象的类,而是提供了一个创建代理对象的静态方法(newEroxyInstance方法)来获取代理对象。动态代理又有JDK代理和CGLib代理两种。...原创 2022-07-18 07:47:28 · 121 阅读 · 0 评论 -
Java23种设计模式系列——创建者模式之建造者模式day2-3
将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示造者模式所创建的产品一般具有较多的共同点,其组成部分相似,如果产品之间的差异性很大,则不适合使用建造者模式,因此其使用范围受到一定的限制。Builder(抽象接口)AbstractBuilder(抽象建造者类)NormalBikeBuilder(具体建造者类)RichBikeBuilder(具体建造者类)Director(指挥者类)测试类建造者模式除了上面的用途外,在开发中还有一个常用的使用方式,就是当一个类构造器原创 2022-07-18 02:49:57 · 79 阅读 · 0 评论 -
Java23种设计模式系列——创建者模式之原型模式day2-2
String是采用(字符串池)stringpool的方式,当修改值后会把地址返回,不同的字符串其地址不相同,如果字符串池中有该字符串,会直接返回地址;如果没有,会在池中重新创建一个并返回地址。因为修改后其地址不一样,所以不会影响原来的值。用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。Cloneabel接口的实现标志当前类是可被克隆的。通过序列化和反序列化实现。...原创 2022-07-17 14:21:36 · 130 阅读 · 0 评论 -
Java23种设计模式系列——创建者模式之工厂模式day2-1
为了演示方便,我们使用properties文件作为配置文件,名称为..原创 2022-07-17 06:19:06 · 114 阅读 · 0 评论 -
Java23种设计模式系列——创建者模式之单例模式day1-3
枚举类实现单例模式是极力推荐的单例实现模式,因为枚举类型是线程安全的,并且只会装载一次,设计者充分的利用了枚举的这个特性来实现单例模式,枚举的写法非常简单,而且枚举类型是所用单例实现中唯一一种不会被破坏的单例实现模式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。方法,在反序列化时被反射调用,如果定义了这个方法,就返回这个方法的值,如果没有定义,则返回新new出来的对象。解决了性能,安全的问题。.原创 2022-07-16 23:32:56 · 217 阅读 · 0 评论 -
Java23种设计模式系列——设计原则day1-2
实现Skill接口,写公用方法showSkillsprintln);}开闭原则扩展易维护,接口为规范,实现为使用,实现热插拔里氏代换不要质疑前人的智慧,我们要站在巨人的肩膀上(子类不重写,只扩展功能)依赖倒转对抽象进行编程,使用抽象,隐藏具体实现,降低耦合接口隔离用多少,拿多少,对接口方法实现必要的,不出现任何冗余迪米特中介助力降低风险提升效率合成复用高内聚低耦合(多聚合,少继承),易扩展易复用httpshttpshttpshttpshttps。...原创 2022-07-16 20:59:20 · 232 阅读 · 0 评论 -
Java23种设计模式系列——概述day1-1
Java23种设计模式系列——概述概述为什么要学习设计模式设计模式分类创建型模式结构型模式行为型模式23种设计模式罗列概述软件设计模式(Software Design Pattern),又称设计模式,是一套被反复慑用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。为什么要学习设计模式设计模式的本质是面向对象设计原则的实际运用原创 2022-04-13 09:29:35 · 116 阅读 · 0 评论