设计模式的学习
2022-1-22
数据结构、算法、设计模式、为编程的内功,语言和工具则为招式。
所谓设计模式,就是编写代码的思想。
模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。
【A pattern is a successful or efficient solution to a recurring problem within a context】
设计模式用于在特定的条件下为一些重复出现的软件设计问题提供合理的、有效的解决方案。
设计模式可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种,
其中创建型模式主要用于描述如何创建对象,
结构型模式主要用于描述如何实现类或对象的组合,
行为型模式主要用于描述类或对象怎样交互以及怎样分配职责
优点:
设计模式将有助于提高系统的可维护性和可扩展性、
常见的几种设计模式
设计模式的原则
1. 单一职责原则
示例:如设计图表库,Chart类的职责过重,它负责初始化和显示所有的图表对象,
将各种图表对象的初始化代码和显示代码集中在一个类中实现,违反了“单一职责原则”,不利于类的重用和维护;
2. 开闭原则
示例:设计图表库,当需要增加新类型的图表时,必须修改Chart类的源代码,违反了“开闭原则”。即扩展是开放的,修改是关闭的。
0.单例模式
定义:确保一个类最多只有一个实例,并提供一个全局访问点
单例模式可以分为两种:预加载和懒加载
实际应用:在设计管理类的时候,会考虑需不需要,设为单例模式。
创建类的时候,在类的内部生成自己的实例,不允许在类的外部去创建多个实例
//这种形式就是 单例模式的预加载,会占用内存
class soundManager{
//创建唯一实例
static Instance=new soundManager; //使用静态 可是用类名调用属性
private constructor(){
//私有化构造函数 就能确保一个类最多就只能创建一个实例
}
}
soundManager.Instance
// 这种懒加载的单例模式,在需要的时候会被创建。
class soundManager{
private static instance:soundManager=null;
private constructor(){
};
public Instace(){
if(!soundManger.instace){
soundManger.instance = new soundManger;
}
return soundManger.instance;
}; //把创建实例变为方法
}
soundManager.Instance(); //使用方法去调用单例实例,当没有的时候在创建实例,比第一