设计模式
常用设计模式,Java版
hober.z
修炼
展开
-
设计模式中的六个原则
1. 单一职责原则 (SRP: Single Responsibility Principle)类或接口职责单一2. 里式替换原则 (LSP: Liskov Substitution Principle)父类出现的地方子类也可以出现。 并且将父类用子类替换后,也不会产生任何问题3. 依赖倒置原则 (DIP: Dependence Inversion Principle)• 高层模块不应该依赖底层模块,两者都应该依赖其抽象• 抽象不应该依赖细节,细节应该依赖抽象4. 接口隔离原则 (ISP:In原创 2022-02-20 23:37:14 · 340 阅读 · 1 评论 -
当策略模式遇上Spring
策略模式是一种比较简单的模式。一般来说,我们可以根据不同的任务类型,来选择不同的执行策略。普通调用写法对于Java语言来说,一般来说可以简化如下:if ("01".equals(type)) { firstStrategy.execute();} else if ("02".equals(type)) { secondStrategy.execute();}firstS...原创 2020-03-22 00:34:33 · 441 阅读 · 0 评论 -
设计模式之装饰模式
问题的引出人们日常生活中所使用的手机是不断迭代的、不断产生新功能的。初代的座机,只能打电话。如今手机经过了发展,又产生了很多功能,如听音乐、看视频等。将手机当做一个产品类,如果我们要实现这一模型的话,若采用一般继承的方式来构造的话,无疑会产生很多类。如下:interface ITelephone{ void use();}class Telephone implement...原创 2018-04-25 10:14:14 · 208 阅读 · 0 评论 -
设计模式之工厂方法模式
使用工厂模式创建对象时,我们不需要对客户端暴露创建逻辑,只需要通过一个共同的接口(工厂)来创建即可,从而使得代码简洁易懂。工厂方法模式中有以下几个元素:产品:要创建的对象工厂:用于创建产品的媒介在介绍工厂方法模式之前,先介绍一下简单工厂 简单工厂的实现十分简单:共同的产品接口产品类实现产品接口提供工厂类,用于创建不同的产品以生产汽车为例1.共同的产品接口...原创 2018-04-17 14:19:33 · 182 阅读 · 0 评论 -
设计模式之动态代理
动态代理和静态代理同属于代理模式。所不同的是,在Java中,动态代理的代理者对象是由Jdk给我们提供的。 以上次租房为案例,真实角色和共同接口如下:// 共同的接口interface Rent{ abstract void rentHouse();}// 真实对象class Person implements Rent{ @Override public...原创 2018-04-16 11:10:06 · 153 阅读 · 0 评论 -
设计模式之静态代理模式
代理模式生活中,我们很多地方要用到代理。比如租房,我们一般不会自己去找房子,而是通过中介帮我们租房子,这样中介就“代理”了我们租房的这个过程。同样的,在程序设计中也会有这样的问题。我们不能直接访问某个对象或方法,而是通过代理对象来访问。这就是代理模式。静态代理静态代理是我们“知根知底”的一种代理模式,因为其被代理者、代理者都是需要我们自己来实现的。与之相对的动态代理的代理者则不是我们实...原创 2018-04-10 21:39:12 · 172 阅读 · 0 评论 -
设计模式之单例模式
单例模式:一个类只能生成唯一一个实例对象的设计模式 为了实现这一目标,需要我们: 1.将类的构造器私有化,这样就不能被其他方法调用 2.提供一个获取该类实例变量的方法,该方法必定是公有静态的(因为此时我们还不能获得该类的实例对象,只能通过类名.方法调用) 3.该类自己创建自己的唯一实例,这个实例是静态私有单例模式有三种实现方法: 懒汉式:顾名思义,在调用的时候才会创建实例对象/*...原创 2018-04-03 23:06:05 · 124 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式的作用适配器模式使得原来由于接口不兼容而不能一起工作的哪些类可以在一起工作。适配器中的角色:目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。适配器(Adapter):通过包装一个需要适配的对象,把原接口转换为目标接口待适配对象(Adaptee):需要适配的类或适配者类快速理解运用举例:使用电脑查看手机中的数据...原创 2018-05-03 23:15:49 · 143 阅读 · 0 评论