设计模式
文章平均质量分 72
LongWarren
共同进步
展开
-
装饰模式
装饰模式 一、定义 装饰模式是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。 装饰模式在我们生活中应用比较多如给煎饼加鸡蛋;给蛋糕加上一些水果;给房子装修等,为对象扩展一些额外的职责。 和静态代理最大的区别就是职责不同,静态代理不一定要满足is-a的关系,静态代理会做功能增强,同一个职责变得不一样,装饰器更多考虑是扩展 二、适用场景 1.用于扩展一个类的功能或给一个类添加附加职责 2.动态的给一个对象添加功能,这些功能可以在动态的撤销原创 2020-08-31 20:21:23 · 175 阅读 · 0 评论 -
委派模式和策略模式
一、委派模式 1.1、定义 委派模式不属于GOF23中设计模式中。委派模式的基本作用就是负责任务的调用和分配任务,何代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,二委派模式注重结果。spring中DispatcherServlet其实就是委派模式。 1.2、实例 老板boos给项目经理leader下达任务,项目经理会根据实际情况给每个员工派发任务,待员工把工资任务完成之后,再由项目经理汇报工资进度和结果给老板。 Iemployee员工接口 /** * <p>原创 2020-08-31 17:45:01 · 285 阅读 · 0 评论 -
代理模式
代理模式 一、概念 代理模式是指为其他对象提供一种代理,以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介作用,代理模式属于结构型设计模式。使用代理模式主要有两个目的:一保护目标对象,二增强目标对象。 二、JDK动态代理 代理的目标接口,相亲 public interface Person { public void findLove(); } 代理目标实现,要相亲的人 public class JDKCustomer implements Person { @Overri原创 2020-08-31 13:25:35 · 159 阅读 · 0 评论 -
单例模式
单例模式 饿汉式单例 public class HungrySingleton { private static final HungrySingleton HUNGRY_SINGLETON = new HungrySingleton(); private HungrySingleton(){} public static HungrySingleton getInstance(){ return HUNGRY_SINGLETON; } } publi原创 2020-08-26 23:17:43 · 158 阅读 · 0 评论 -
设计模式-工厂模式
设计模式-工厂模式 spring中的BeanFactory就是工厂模式 一、简单工厂模式 简单工厂模式是指一个工厂对象决定创建出哪一种产品类的实例。实现一个类,类里面有一个方法,更加传入的参数,创建对象。客户端只需要传入工厂类参数,对如何创建类不关心。 下图就是一个简单工厂的实例 Calendar.getInstance就是一个简单工厂模式 缺点:工厂类的职责相对过重,不易于扩展过于复杂的产品结构。 二、工厂方法模式 工厂方法模式是指定义一个创建对象的接口,但让实现这个接口的类觉定实例化哪个类,工厂方法原创 2020-08-23 12:57:30 · 113 阅读 · 0 评论 -
软件架构师设计的七大原则
软件架构师设计的七大原则 一、开闭原则 开闭原则是指一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。所谓开闭,也真是对扩展和修改两个行为的一个原则。强调的是用抽象架构框架,用实现扩展细节。可以提高软件系统的可复用性及可维护性。是面向对象设计中最基础的设计原则。 目的:提高复用性和维护性 例1:我们版本更新,我尽可能不修改元代码,但是可以增加新功能 二、依赖倒置原则 依赖倒置原则是指设计代码时,高层模块不应该依赖底层模块,二者都应该依赖器抽象。抽象不应该依赖细节;细节应该依赖抽象。 目的:减少类与类之原创 2020-08-23 12:26:35 · 197 阅读 · 0 评论