设计模式
文章平均质量分 73
王小白杂货店
这个作者很懒,什么都没留下…
展开
-
代理模式介绍(静态代理、jdk动态代理、cglib代理)
为其他对象提供一种代理以控制对这个对象的访问;1、代理模式的优点:(1)职责清晰:真实角色负责处理实际的业务逻辑,不用关心非本职的事务,通过代理完成附加的事务;(2)高扩展性:不同的需求可能会有不同的真实角色,只要实现了接口,代理类就可以完全在不做任何修改的情况下代理各种真实主题角色;2、静态代理模式的缺点:(1)若抽象主题角色增加功能,会影响代理类;(2)不同的功能需求可能会有不同的代理类;:方法拦截器类;:增强类;:方法代理类。原创 2023-12-03 21:11:14 · 1060 阅读 · 0 评论 -
模板方法模式
定义一个操作中算法的框架,将一些步骤延迟到子类中。使得子类可以不改变一个算法的机构即可重定义该算法的某些特定步骤。1、模板方法模式的优点(1)封装不变的部分,扩展可变部分。不变的部分封装到父类中实现,而可变的部门则可以通过继承进行扩展;(2)提取公共代码,便于维护;(3)行为由父类控制,子类实现,子类可以通过扩展增加相应的功能,符合开闭原则;原创 2023-11-29 22:02:23 · 706 阅读 · 0 评论 -
抽象工厂模式
2. 定义(1)为创建一组相关或相互依赖的对象提供一个接口,无须指定它们的具体类;(2)抽象工厂模式是工厂方法模式的进一步抽象,抽象工厂方法模式针对的是一族产品,如果产品族中只有一种产品,则抽象工厂模式退化为工厂方法模式;3. 抽象工厂模式涉及到的角色(1)抽象工厂角色:抽象工厂模式的核心,与应用系统无关,任何创建对象的工厂必须实现这个接口;(2)具体工厂角色:实现了抽象工厂接口,含有选择合适产品对象的逻辑,受到应用程序调用以创建产品对象;(3)抽象产品角色:定义产品的共性;(4)具体产品角原创 2023-11-21 22:47:36 · 370 阅读 · 0 评论 -
工厂方法模式介绍
定义一个创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。工厂方法涉及的角色有:1 .抽象工厂角色:工厂方法模式的核心,与应用系统无关,任何创建对象的工厂类必须实现这个接口。2. 具体工厂角色:实现了抽象工厂接口,被应用程序调用以创建产品对象。3. 抽象产品角色:定义产品的共性,实现对产品抽象的定义。4. 具体产品角色:实现抽象产品角色所声明的接口。(1)提高扩展性:在增加产品类的情况下,只要适当调整具体的工厂类或扩展一个工厂类,就可以适应变化。原创 2023-08-23 23:10:27 · 637 阅读 · 0 评论 -
策略设计模式
针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换,使算法可以在不影响到客户端的情况下发生改变;环境角色(上下文角色):屏蔽高层模块对策略的直接访问,持有一个策略类的引用;抽象策略角色:对策略、算法进行抽象,通常定义每个策略或算法必须具有的方法和属性;具体策略角色:实现抽象策略中的具体操作,有具体的算法;(1)策略模式使用继承的方法可以把公共的代码移到父类中,避免代码重复;(2)避免算法的使用者和算法本身混合到一起,便于扩展;原创 2023-06-05 19:18:49 · 126 阅读 · 1 评论 -
单例设计模式
1、确保一个类只有一个实例,可以用在建立目录、数据库连接等需要单线程操作的场合,用于实现对系统资源的控制;2、单例类的构造方法是私有的,避免外部使用构造方法创建实例;3、单例类不能被继承,因为其构造函数是私有的;(1)减少了内存开支,由于单例类的实例没有被频繁创建、销毁;(2)减少了系统的性能开销,可以应用于读取配置、产生其它依赖对象,让其在应用启动期间保存在内存中;(3)避免对资源的多重占用;(4)可以优化和共享资源访问,例如数据表的映射处理;原创 2023-06-04 17:35:42 · 51 阅读 · 0 评论