当前位置: 首页 > news >正文

常用设计模式

里氏替换原则:子类可以扩展父类的功能,但是不要更改父类的已经实现的方法子类对父类的方法尽量不要重写和重载。(我们可以采用final的手段强制来遵循)创建型模式
单例模式:维护线程数据安全
懒汉式
public class Test{
饿汉式
private static final Test test=new Test();
//构造私有化
private Test(){}
public static Test getInstance(){
return test;}
}饿汉式
public class Test{
饿汉式
private static Test test=null;
//构造私有化
private Test(){}
public static synchronized Test getInstance(){if (test==null) test=new Test();return test;}
}工厂模式:隐藏创建细节,实现对象的生产
public class ConnectionFactory{
public Connection create(String connectionName){
switch(connectionName){case "redis":return new RedisConnection;cases "mysql":return new MysqlConnection;default :return null;}}
}结构型模式
装饰着模式:注意.装饰者模式和静态代理模式实现一样,但是装饰者模式侧重的是类的假强,静态代理侧重的是方法的加强
interface Persion{void said();
}
class  Men implements Persion{@Overridepublic void said() {System.out.println("man said");}
}
class OldMen implements Persion {private Persion persion;public OldMen(Persion persion){this.persion=persion;}@Overridepublic void said() {persion.said();System.out.println("oldMan said");}
}代理模式(反射):
静态代理(编译后不可更改对象的行为):静态代理和装饰者模式是一样的实现方式,可以完成同样的事情,但是代理模式侧重方法的加强,而装饰者模式侧重类的加强
动态代理(动态的更改对象的行为属性)jdk动态代理cglib动态代理模式行为型模式
观察者模式:
interface Observer {//观察谁abstract void update(BeObserver beObserver);
}class BeObserver {List<Observer> list = new ArrayList<>();private int statues;public void setList(int statues) {this.statues = statues;notifyAllObserver();}public void notifyAllObserver() {list.forEach(s -> s.update(this));}
}
http://www.lryc.cn/news/60600.html

相关文章:

  • 时序分析 49 -- 贝叶斯时序预测(一)
  • 从传统管理到智慧水务:数字化转型的挑战与机遇
  • ROS学习第十八节——launch文件(详细介绍)
  • javaweb在校大学生贷款管理系统ns08a9
  • 分布式之搜索解决方案es
  • CSDN 编程竞赛四十六期题解
  • Linux——进程
  • 计及氢能的综合能源优化调度研究(Matlab代码实现)
  • 基于Bert的知识库智能问答系统
  • libapparmor非默认目录构建和安装
  • 2023-04-14 算法面试中常见的查找表问题
  • 从TOP25榜单,看半导体之变
  • [异常]java常见异常
  • gpt4all保姆级使用教程! 不用联网! 本地就能跑的GPT
  • AcWing语法基础班 1.1 变量、输入输出、表达式和顺序语句
  • DC:5靶机通关详解
  • 【测试开发篇9】Junit框架
  • 《Spring MVC》 第五章 实现RESTful
  • Last Week in Milvus
  • Cursor IDE一个GPT4人工智能自动程序编辑器
  • PPO算法-理论篇
  • 【现货】AP6317 同步3A锂电充电芯片 带短温度保护
  • MyBatis详解(2)
  • 2023-04-14 使用纯JS实现一个2048小游戏
  • C++入门(3)
  • 【亲测有效】更新了WIN11之后 右键无 新建WORD,PPT,EXCEL 选项 问题 解决方案
  • 2023年4月北京/西安/郑州/深圳CDGA/CDGP数据治理认证考试报名
  • Win10桌面我的电脑怎么调出来?最简单方法教学
  • 开启单细胞及空间组学行业发展黄金时代!首届国际单细胞及空间组学大会在穗闭幕
  • YOLOv8 更换主干网络之 GhostNetV2