java设计模式

一.工厂模式

/**
 * 工厂设计模式
 *      将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
 *
 *      1.简单工厂模式  采用if或者switch 分别获取不同的实现类
 *      2.多方法静态工厂 采用多个静态方法,分别获取不同的实现类
 *      3.工厂方法模式  采用多个类实现,获取不同的实例
 */

二,抽象工厂模式

/**
 * 抽象工厂模式
 *      提供一个创建一系列的相关的或者依赖的对象的接口,无需指定它们的具体实现类,具体的实现分别在子类工厂中产生。
 *  AbstractFactory
 *          getFactoryA
 *          getFactoryB
 *
 *   FactoryA extends AbstractFactory
 *          getInterfaceA-implementsA-1 返回具体实现类
 *          getInterfaceB-implementsA-1 返回具体实现类
 *
 *   FactoryB extends AbstractFactory
 *          getInterfaceA-implementsA-2 返回具体实现类
 *          getInterfaceB-implementsB-2 返回具体实现类
 *
 *   FactoryProducer  这个可以省去 
 *          getAbstractFactory (A or B) 判断获取哪个具体的工厂类
 *
 *   InterfaceA
 *          implementsA-1
 *          implementsA-2
 *          implementsA-3
 *
 *   InterfaceB
 *          implementsB-1
 *          implementsB-2
 *          implementsB-3
 */

三.单例模式

/**
 * 单例模式
 *      在单例类的内部实现只生成一个实例,同时它提供一个静态的getInstance()工厂方法,让客户可以访问它的唯一实例;
 *      为了防止在外部对其实例化,将其构造函数设计为私有;在单例类内部定义了一个Singleton类型的静态对象,
 *      作为外部共享的唯一实例。
 *
 *      1.饿汉式
 *      2.懒汉式
 *      3.静态内部类
 *      
 *      参考: https://www.cnblogs.com/kuoAT/p/6725808.html
 */

四.桥接模式

/**
 * 桥接模式
 *      将抽象部分与实现部分分离,可以独立的变化! (两个维度的变化)
 *      我理解的是一种类或者接口中有一些批量的有相同特征的操作,假如使用继承的方式的话就会出现很多继承关系的类
 *
 *      例如
 *      Person--->
 *                  Student---->
 *                              WalkStudent
 *                              BicycleStudent
 *                              CarStudent
 *                              ........
 *                  Teacher---->
 *                              WalkTeacher
 *                              BicycleTeacher
 *                              CarTeacher
 *                              ........
 *                  Worker---->
 *                              WalkWorker
 *                              BicycleWorker
 *                              CarWorker
 *                              ........
 *                  .........
 *    假如有n种Person的继承,有x种交通方式出门 ,那么就会有 n+n*x+1 个实现类了
 *
 *    采用桥接的方式的话如下
 *
 *    Person(Vehicle) 传入一个交通工具的实现类
 *              ↑   ---------->
 *            注│        Student--->出门调用传入的Vehicle的方法
 *            入│        Teacher--->出门调用传入的Vehicle的方法
 *              │        Worker--->出门调用传入的Vehicle的方法
 *    Vehicle ---->
 *              WalkVehicle    走路实现
 *              BicycleVehicle  骑自行车
 *              CarVehicle     开车实现
 *
 *     采用上述的方式 就会有 n+x+1 个类了
 */

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java设计模式是一套对代码设计经验的总结,被人们反复利用,并且很多人都熟知的代码设计方式。其中,单例模式是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这种模式有几个好处,比如可以节约系统资源,提高程序效率,以及提供一个全局访问点等。在实现单例模式时,可以采用饿汉式单例模式,即在类加载时创建一个对象,并通过私有构造器和静态方法来保证对象的唯一性。另外,工厂方法模式也是Java中常用的设计模式之一。在工厂方法模式中,可以定义一个工厂类,该类负责创建对象的实例,并将其封装在一个工厂方法中。通过这种方式,可以实现对象的创建与使用的分离,提高代码的灵活性和可维护性。总的来说,Java设计模式是一种用于解决特定问题的通用解决方案,可以提高代码的重用性、可读性和可扩展性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Java常用设计模式](https://blog.csdn.net/qq_33327680/article/details/123815614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [JAVA中23种设计模式](https://blog.csdn.net/qw_0214/article/details/78878531)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值