1.工厂模式
第一种:申明一个接口,提供一个test()方法,创建两个实现类,实现test()方法,创建一个工厂类,工厂类提供一个创建方法create(type),该方法返回值设置为接ko口,根据传入的type,判断该返回哪种具体的实现类。
第二种:改进后写法:申明一个接口,提供test()方法,创建两个实现类,实现test()方法,创建一个工厂类,提供两个方法,一个方法创建第一个实现类,第二个方法创建第二个实现类,接口类型,这两个方法的返回类型是测试的时候,工厂类主动调用其中一个方法,然后创建对象,Send send = new SmsSendImpl();然后调用SmsSendImpl中的test()方法
2.单例模式(特点,一个类只需要创建一次,构造器为私有构造器)
第一种:单线程 ,创建一个Single类,静态变量private static Single single = new Single();提供getInstance()方法,返回类型为Single;
第二种:单线程 ,创建一个Single类,静态变量private static Single single = null,提供getInstance()方法,if(single == null){single = new Single()};
第三种:多线程,用synchronized, 锁定该方法。
3.原型模式,复制对象
- public class Prototype implements Cloneable {
- public Object clone() throws CloneNotSupportedException {
- Prototype proto = (Prototype) super.clone();
- return proto;
- }
- }
4.适配器模式
第一种:类的适配器模式,主要是申明一个接口,接口中有一个test()方法,一个test1()方法,在申明一个类A,此类并不去实现接口,里面具体去实现test()方法,此时我在声明一个类继承A和实现接口,这个接口对test1()进行具体实现,当你测试的时候,其实他会调用类A中的test(),由于他实现了接口,则必须要实现接口中的方法,而他继承了类A,所以继承了test()方法,若没有重写,则会调用父类的方法。
第二种: