设计模式
小果冻。。
这个作者很懒,什么都没留下…
展开
-
适配器模式
适配器模式:将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题 类的适配器 package hgd; public class Source { public void method1() { System.out.println("method1................"); } } package hgd; public interface TargetInterface { public void method1原创 2020-07-07 17:38:17 · 77 阅读 · 0 评论 -
策略模式
策略模式 将不同的算法分别封装到不同的类当中。便于扩展和维护 例:锦囊妙计(对外来说,长的都差不多) 策略模式可以优化很多时候都是可以优化if语句的 例:将计算行为抽象出来,作为策略接口,有许多实现类(加减乘除) 策略模式就是让调用这些策略模式的使用者来讲,根本感知不到出来代码发生了扩展 策略模式有两种常用的使用方式 一种就是你给我什么策略,我干什么事情 public interface Operation { public int doOperation(int num1,原创 2020-05-15 15:35:27 · 73 阅读 · 0 评论 -
抽象模板设计模式
抽象模板设计模式举例 将抽象出来的父类来编写代码中不变的部分 将变化的部分交给子类去完成。通过抽象方法让子类必须去完成 抽象模板方法是遵循了里式替换设计原则,是对继承的一种优秀的使用经验 例1:把大象装冰箱,分三步: (抽象模板方法设计模式的抽象出来父类的描述方式) 例2:去统计代码的执行时间(第一步:开始计时;第二步:代码执行;第三步:计时结束) public abstract class GetTimeBuild { public Long getTime() { l原创 2020-05-15 13:17:04 · 232 阅读 · 0 评论 -
对象在JVM中的创建步骤
对象在JVM中的创建步骤 new :开辟JVM堆中的内存空间 将内存空间初始化(指的是就是对象的成员变量为0值) 将内存空间地址(引用地址)赋值给栈空间的引用类型的变量原创 2020-05-12 09:42:02 · 100 阅读 · 0 评论 -
并发编程的三大特性
原子性 狭义上指的是CPU操作指令必须是原子操作 广义上指的是字节码指令是原子操作 保证原子性? 加锁(Synchronize、Lock) 有序性 可见性原创 2020-05-12 08:08:15 · 359 阅读 · 0 评论 -
懒汉式的三种线程安全的写法
双重检查锁 public class Student { private static Student student=null; private Student() { } public static Student getSingletonInstance() { if (student==null) { synchronized (Student.class) { if (student==null) { student=new Student();原创 2020-05-12 11:33:42 · 604 阅读 · 0 评论 -
单例设计模式
单例模式 整个应用范围内,同一个类型只应该有一个实例对象存在 单例模式分成两种实现方式:懒汉式、饿汉式 饿汉式:初始化的时候提前将单例对象创建出来 public class Student { private static Student student=new Student(); private Student() { } public static Student getSingletonInstance() { return student; } public原创 2020-05-11 20:34:37 · 77 阅读 · 0 评论 -
原型设计模式
原型模式 不通过new关键字,直接复制对象(不走构造方法,走的是底层的C函数调用JVM内存对象的复制功能) 原型对象,我就可以搞出来一个和他一样的东西 如果有个对象,构造的时候,需要100个构造函数 A线程和B线程都对Student对象进行操作,A线程和B线程都想单独操作Student的数据 两女争一男,将男同志一分为二是最好的选择,皆大欢喜 两种实现方式 浅拷贝 只有对象的8种基本类型和String类型进行复制,而引用类型只是复制类引用,而没有将引用类型对应的对象进行复制原创 2020-05-11 16:51:47 · 77 阅读 · 0 评论 -
迪米特法则
高内聚、低耦合 高内聚指的是类内部的信息,其实指的是面向对象的三大特性中的封装特性 低耦合指的是类与类之间的关系,关系:依赖、关联(一般关联、组合、聚合)、泛化、实现 低耦合不是说不要和其他类发生关系,要尽量的减少耦合 ...原创 2020-05-11 09:39:50 · 81 阅读 · 0 评论 -
构建者模式
构建者模式: 和工厂模式对比 相同点:构建者模式和工厂模式都是创建对象, 不同点:工厂更多的是批量创建相同属性的对象。而构建者是根据调用者的需求去私人定制对象。 角色 产品类,要生产的对象 导演类,导演如何去定制一个对象 构建者类,就是完成私人定制功能的具体类 构建者模式和user.setName区别在于: user.setName在set的时候,该对象其实已经可以被其他人使用了 构建者模式,在私人定制的时候,还没有得到最终的对象。还不能使用对象 ...原创 2020-05-10 20:49:40 · 123 阅读 · 0 评论 -
工厂模式
简单工厂: 只有一个工厂类 可以生产任何需要的对象,也称之为上帝(万能工厂) //spring使用简单工厂实现了IOC容器 //以下代码采用了简单工厂的方法,但是问题很大 //1.违反了开闭原则 //2.该类太累,代码太重 public class SimpleFactory{ public Object getBean(String name){ if("cat".equils(name)){ return new Cat() ..原创 2020-05-10 20:20:20 · 80 阅读 · 0 评论 -
面向对象设计原则
面向对象设计原则:可复用性、可维护性 七大设计原则(可以提升面向对象的设计能力): 如何扩展开放? 抽象并实现继承关系 面向接口编程、解耦 配置文件 开闭原则: 七大设计原则的最基本的原则,这个原则不遵守的,其他的都白扯 类或者方法中的代码,要【对扩展开放】,要【对修改关闭】 开闭原则使用的前提是代码已经封板,或者上写使用了 这也是在代码中不允许写硬编码的原因(比如数据库连接) 为了提升代码的扩展性 里式替换原则: 如何合理的使用继承关系 任何能出现父类的地方,...原创 2020-05-09 20:09:23 · 107 阅读 · 0 评论 -
UML建模语言
UML中的类图 UML的类图种类: 用例图 类图 对象图 状态图 活动图 时序图 协作图 构建图 部署图 类: 类名:是一个字符串 属性:是指类的特性,即类的成员变量 - 私有 + 公有 类图:是用来显示系统中的类、接口、协作以及它们之间的静态结构和关系的一种静态模型 类之间的关系种类: 1.依赖关系 ...原创 2020-05-08 20:08:40 · 85 阅读 · 0 评论