设计模式

﹥>﹥吖頭↗ 提交于 2019-11-27 08:11:48

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.原型模式,复制对象

  1. public class Prototype implements Cloneable {  
  2.   
  3.     public Object clone() throws CloneNotSupportedException {  
  4.         Prototype proto = (Prototype) super.clone();  
  5.         return proto;  
  6.     }  
  7. }

4.适配器模式

第一种:类的适配器模式,主要是申明一个接口,接口中有一个test()方法,一个test1()方法,在申明一个类A,此类并不去实现接口,里面具体去实现test()方法,此时我在声明一个类继承A和实现接口,这个接口对test1()进行具体实现,当你测试的时候,其实他会调用类A中的test(),由于他实现了接口,则必须要实现接口中的方法,而他继承了类A,所以继承了test()方法,若没有重写,则会调用父类的方法。

第二种:

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!