设计模式
设计模式有很多种:说几种比较常用的。
首先说一下单例设计模式:单例设计模式是一种创建型模式,指某个类采用单例设计模式模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点。
下面通过程序理解一下:
publicclass Single { //构造函数定义为私有的,所以不能通过new+构造方法()的形式创建对象访问 private Single(){
} publicstatic Single s = new Single();
publicstatic Single getInstance(){ returns; } } |
publicclass TestSingle { publicstaticvoid main(String[] args) { //通过下面这种方式创建对象来访问 Single s1 = Single.getInstance(); Single s2 = Single.getInstance(); // 对于引用数据类型来说,==比较的是地址。 System.out.println(s1==s2); } } |
执行结果: true |
从结果来看,说明这两个对象是同一个,这也就证明了只能产生一个实例供外部访问的特点。 |
再说一下工厂模式:
//定义一个动物接口,里面是吃的方法 interface Animal{ publicvoid eat(); } //创建每个动物类,并继承这个接口且需要重写吃的方法 class Tiger implements Animal{ @Override publicvoid eat() { System.out.println("tiger eat 肉"); } }
class Cat implements Animal{ @Override publicvoid eat() { System.out.println("cat eat 鱼"); }
} class Dog implements Animal{ @Override publicvoid eat() { System.out.println("Dog eat 骨头"); }
} //创建一个工厂,用来判断不同动物对应的不同吃法 class Factory { publicstatic Animal getAnimal(String name){ if("tiger".equals(name)){// 这样写避免空指针异常。 returnnew Tiger(); }elseif("cat".equals(name)){ returnnew Cat(); }elseif("dog".equals(name)){ returnnew Dog(); } returnnull; } }
publicclass TestFactory { publicstaticvoid main(String[] args) { Animal a = Factory.getAnimal("dog"); a.eat(); } } |
执行结果: Dog eat 骨头 |
这里的类和之前所说的内部类是不同的,内部类是定义在类的里面的,而这里的类是在类外面的,也就是说每个类都是独立的。 |
还有很多种设计模式,由于不是很常用,有的自己也不是很清楚,所以以后再添加吧,就先说这两种。