资源网站都是在哪找的,网站同时做竞价和seo,去除wordpress概览,企业展厅策划设计公司有哪些文章目录 介绍模板设计模式介绍优势代码 装饰者设计模式介绍套路代码 单例设计模式介绍步骤分类代码 多例设计模式介绍步骤代码 工厂设计模式介绍步骤代码 介绍
是一套被反复使用#xff0c;多数人知晓#xff0c;经过分类编目的#xff0c;代码设计经验的总结使用设计模式… 文章目录 介绍模板设计模式介绍优势代码 装饰者设计模式介绍套路代码 单例设计模式介绍步骤分类代码 多例设计模式介绍步骤代码 工厂设计模式介绍步骤代码 介绍
是一套被反复使用多数人知晓经过分类编目的代码设计经验的总结使用设计模式是为了可重用代码让代码更容易被他人理解保证代码可靠性程序的重用性简单的说就是一套良好的编码风格通过众多开发人员长时间测试经验总结而来不同的设计模式也有不同的好处
模板设计模式 介绍
把抽象类整体就可以看做成一个模板模板中不能决定的东西定义为抽象方法让使用模板的类继承抽象类的类去重写抽象方法实现需求。
优势
模板已经定义了通用结构使用者只需要关心自己需要实现的功能即可
代码
public abstract class Demo {public void writeZuoWen(){head();middle();end();}private void head(){System.out.println(作文的开头);}private void end(){System.out.println(作文的结尾);}public abstract void middle();
} 装饰者设计模式 介绍
不改变原类在不继承的基础上动态的扩展一个对象的功能(功能增强)
套路
装饰类和被装饰类需要共同的父类型装饰类的构造要接收被装饰类的对象在装饰类中把要增强扩展的功能进行扩展对于不要增强的功能直接引用
代码
//介绍BufferReader 提高读的效率//场景在使用FileReader类时发现读的效率低希望提高效率
//不能修改FileReader类不能继承FileReader类要对read(char[] cbuf)方法进行增强//使用装饰者设计模式
//装饰类BufferReader 被装饰类FileReader
//他俩都由共同的父类Reader
public class BufferedReader extends Reader(){private FileReader fileReader;public BufferedReader(FileReader fileReader){this.fileReader fileReader;
}//成员变量
private int size 1024*8;//缓冲区对象
char[] cbuf new char[size];//重写read()方法
public int read(){read(cbuf);
}//重写read(char[] cbuf){
public int read(char[] cbuf){...
}//重写相关方法
public void close(){fileReader.close();//调用原有功能
}}单例设计模式 介绍
正常情况下一个类就可以创建多个对象但是有时候一个对象就能搞定的事情创建多个对象就会浪费内存通过单例模式创建的项目的类这个类只能有一个对象可以节省内存共享数据
步骤
将构造方法私有化使其外部不能通过new关键字创建该类的对象定义一个静态方法返回这个唯一对象在该类内部创建一个唯一的实例化对象
分类
饿汉式(使用类的时候已经将对象创建完毕) 很着急的样子懒汉式(在调用该静态方法的时候才会创建对象) 不着急 代码
public class King1 {private static King1 king1 new King1();private King1(){}public static King1 getInstance(){return king1;}}
public class King2 {private static King2 king2;private King2(){}public synchronized static King2 getInstance(){if (king2 null){king2 new King2();}return king2;}}多例设计模式 介绍
通过多例模式可以保证该类有固定数量的实例 应用线程池
步骤
创建一个类将其构造方法实例化使其不能在类的外部通过new创建对象在类中定义该类被创建对象的总数量在类中定义存放类实例的list集合在类中提供静态代码块在静态代码块中创建类的实例提供静态方法让外部获取实例
代码
public class Teacher {private Teacher(){}private static int size 3;private static ListTeacher teachers new ArrayList();static {for (int i 0; i size; i) {teachers.add(new Teacher());}}public static Teacher getInstance(){return teachers.get(new Random().nextInt(teachers.size()));}//要想像线程池那样public static Teacher getInstance(int size){int count teachers.size();int result size - count;if (result 0){for (int i 0; i result; i) {teachers.add(new Teacher());}}return getInstance();}} 工厂设计模式 介绍
是Java中最常用的设计模式之一属于创建型模式它提供了一种创建对象的最佳方式。作用类与类之间进行解耦
步骤
编写一个接口定义一个方法编写子类1实现接口重写其方法编写子类2实现接口重写其方法编写一个接口工厂类 类中私有化构造方法定义静态方法来让外部创建对象
代码
public interface Car {void run();
}
public class Falali implements Car{Overridepublic void run() {System.out.println(法拉利破百仅需3秒);}
}
public class Audi implements Car{Overridepublic void run() {System.out.println(奥迪RS7破败仅需3.8秒);}
}
public class CarFactory {private CarFactory() {}public static Car getInstance(String name) {Car car null;if (Falali.equals(name)){car new Falali();}else if (Audi.equals(name)){car new Audi();}return car;}
}
后续测试中name可以在.properties配置文件中读取来进行获取这样就可以更改配置文件来更改对象实现解耦