设计模式
概念:编程过程中 java大师总结 在指定场景下可用的23种解决问题的方案(程序设计的套路)
按类型分类:
创建型模式:强调的是对象的创建
结构型模式:强调的是结合方式
行为型模式:强调的是功能和算法
单例和工厂模式必须能手写
单例模式
public class Demo04Single {
public static void main(String[] args) {
//单例模式:一个类只能有一个对象
//Singleton01 s11=new Singleton01();
Singleton01 s11=Singleton01.getInstance();
Singleton01 s12=Singleton01.getInstance();
System.out.println(s11==s12);
}
}
//单例模式---饿汉式
class Singleton01{
//1 构造方法私有化
private Singleton01() {}
//2 定义一个成员变量 用于记录唯一的对象
private static Singleton01 s=new Singleton01();
//3 提供一个公共的方法类访问 唯一的对象
public static Singleton01 getInstance() {
return s;
}
}
//单例模式---懒汉式
class Singleton02{
//1 构造方法私有化
private Singleton02() {}
//2 定义一个成员变量 用于记录唯一的对象
private static Singleton02 s;
//3 提供一个公共的方法类访问 唯一的对象
public static Singleton02 getInstance() {
if(s==null) {s=new Singleton02();}
return s;
}
}
工厂模式
public class Demo04Factory {
//工厂模式:A类对象的创建 交给B类的方法
//实例工厂模式:A类对象的创建 交给B类的实例方法
//静态工厂模式:A类对象的创建 交给B类的静态方法
public static void main(String[] args) {
DemoA d1=new FactoryInstance().getInstance();
DemoA d2=FactoryStatic.getInstance();
}
}
class DemoA{
void haha() {
System.err.println("a类的哈哈");
}
}
//实例工厂模式
class FactoryInstance{
public DemoA getInstance() {
return new DemoA();
}
}
//静态工厂模式
class FactoryStatic{
public static DemoA getInstance() {
return new DemoA();
}
}
其他设计模式详情参考人家的:https://www.cnblogs.com/pony1223/p/7608955.html