23种设计模式
软件工程的基本概念
软件工程三要素, 方法 ,工具,过程!
软件的生命周期------1
可行性分析阶段
需求分析阶段
项目和产品的区别
项目是面向客户的需求的 有明确的需求
产品是面向大众的,无明确的需求
软件的生命周期----2
系统设计阶段
系统实现阶段
软件的生命周期----3
测试阶段
维护阶段
改正性维护
适应性维护
完善性维护
预防性维护
统一建模语言 UML语言 设计人员专用
IBM公司统一了建模语言
关联关系
has a 拥有 被称为聚合关系 组合的类 可分离
contains a 组合关系 组合的类不可分离
use a
设计模式(套路)与语法无关
模式 分类
A架构模式(宏观的概念 )
B设计模式(微观的概念)
B-1创建模式
涉及到对象的创建,包括 B-1单例模式
*
, B-2工厂模式
*
,B-3创造者模式 ,B-4原型模式
*
单例模式:singleton
B-1-1懒汉模式
他是一种预加载的实现。不管代码中有没有用到getsingleton方法都会被产生但是它的线程绝对安全 因为 sin在虚拟机加载的时候就被产生了
经典案例 设计一个类只能产生一个对象的类
1 将它的构造方法访问修饰符设置为私有的; 方法名为 singleton
2设置静态私有属性 private static singleton sin=new singleton(); 全类共享一个值
3设置 静态方法 并且返回 sin对象 ; public static singleton getsigleton(){
return sin;
}
4外部调用 singleton s=singleton.getsigleton();
B-1-2饿汉模式
特点: 延迟加载实现,只有在真正需要Singleton对象的时候才产生
2不加同步锁,线程不安全:加同步锁,效率低
B-1-3单例模式 双锁机制 既支持延迟加载又支持高并发!
前提 jdk1.8之前这样写也没用
B-2工厂模式 集中创建实例对象
工厂模式的好处
B-2-1简单工厂模式
B-2-2工厂方法模式
B-2-3抽象工厂 多个工厂方法一起够着抽象工厂模式。
B-4原型模式 创建一个和已经存在的对象一模一样的新对象
浅克隆 例如 A类中 有b类的属性
如果克隆 a aaa=new a()
b=a.clone()
B-2结构模式
涉及到类和对象的组合
B-2-1Facade外观模式,B-2-2代理模式,B-2-3适配器模式,B-2-4装饰器模式(最复杂)
B-4-4
桥梁模式 利用聚合组合模式
代理模式(proxy)
B-3行为模式
刻画了类和对象交换及分配职责的方式,主要目标是解耦
观察者模式