设计模式-持续更新

设计模式

1.设计模式七大原则

  • 单一职责

  • 里氏替换

    • 在使用继承时,子类尽量不要重写父类的方法

    • 所有引用基类的地方都必须能透明地使用其子类的对象

    • 在适当的情况下建议使用聚合、组合或者依赖来解决问题

  • 依赖倒置

    • 高层模块不依赖于低层模块,两者都应该依赖于其抽象

    • 抽象不应该依赖细节

  • 接口隔离

    一个类对另一个类的依赖应该建立在最小的接口上

  • 开闭原则

    • 对扩展开放,对修改关闭
  • 迪米特法则

    • 一个类对自己依赖的类知道的越少越好,即最少知道原则
  • 合成复用

2.UML类图

2.1 分类

  • 用例图

  • 静态结构图:类图、对象图、包图、组件图、部署图

  • 动态图:时序图、协作图、状态图、活动图

2.2 类图

2.2.1 概念
类图是用于描述类本身的组成(属性、方法)和类之间的各种静态股息。其中,类之间的关系有:依赖、继承(泛化)、实现、关联、聚合和组合。
2.2.2 关系-依赖

只要在类中用到对方,那么两者之间就必然存在依赖关系

2.2.3 关系-泛化

泛化实际上就是继承关系,是依赖关系的特例

2.2.4 关系-实现

A类实现B接口,是依赖关系的特例

2.2.5 关系-关联

类与类之间的联系,是依赖关系的特例。关联具有导航性和多重性

导航性:即双向关联或单向关联

多重性:即关联双方的类可以拥有对方类多少个对象

2.2.6 关系-聚合

表示整体和部分的关系,整体和部分可以分开,是关联关系的特例

2.2.7 关系-组合

表示整体和部分的关系,整体和部分不可以分开,是关联关系的特例

3. 设计模式

3.1 分类

  • 创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式

  • 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

  • 行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、职责链模式。

3.2 创建型模式

3.2.1 单例模式
保证整个系统中某个类只有一个对象实例存在
3.2.1.1 懒汉式-线程不安全

实际开发中不能使用此种方法

public class SingleTonLazy {
   

    private SingleTonLazy(){
   

    }

    private static SingleTonLazy instance;

    public static SingleTonLazy getInstance(){
   
        if(instance == null){
   //此处在多线程下可能会导致创建多个实例
            instance = new SingleTonLazy();
        }
        return instance;
    }
}
3.2.1.2 懒汉式-使用同步方法实现线程安全

实际开发中不推荐使用此种方法,因为同步方法会导致效率低下

public class SingleTonLazySyncMethod {
   
    private SingleTonLazySyncMethod(){
   

    }
    private static SingleTonLazySyncMethod instance;

    public static synchronized SingleTonLazySyncMethod getInstance(){
   //此处使用同步方法解决多线程下线程不安全问题
        if(instance 
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值