Java设计模式系列教程(一)工厂模式factory
今天和大家一起学习Java的设计模式。本人的水平不是很高,这系列文章只是自己学习的过程,并希望能同大家分享经验。
先说下我对工厂模式的理解:当我们需要某个对象时,最直接的办法是看到这个对象就拿过来。但是当对象非常多的时候,找起来就很不方便。这时就需要一个中介来帮助我们取得想要的东西,这个中介就是工厂(factory)。
工厂模式可分为三个分类(简单工厂模式Simple Factory、 工厂方法模式Factory Method、 抽象工厂模式Abstract Factory)
我来模拟一个场景:动物园管理员每天都要确保动物的健康,确定动物健康的一种简单方法就是听一听动物的叫声是不是正常。这样,管理员就需要随时找到任一种动物以确定动物的情况。下面是动物相关类(至于动物园为什么有猫和狗大家就不要太计较了……):
interface:Animal(动物的接口)
package com.captain.factory;
/**
* <P>Title:动物接口<p>
* @author 船长工作室
*/
public interface Animal {
void call();
}
class:Cat(猫)
package com.captain.factory;
/**
* <p>Title:猫<p>
* @author 船长工作室
*/
public class Cat implements Animal {
/**
* 猫叫
* @param 无
* @return void
*/
public void call() {
System.out.print("meow");
}
}
class:Dog(狗)
package com.captain.factory;
/**
* <p>Title:狗<p>
* @author 船长工作室
*/
public class Dog implements Animal {
/**
* 狗叫
* @param 无
* @return void
*/
public void call() {
System.out.print("bark");
}
}
class:Tiger(老虎)
package com.captain.factory;
/**
* <p>Title:老虎<p>
* @author 船长工作室
*/
public class Tiger implements Animal {
/**
* 老虎叫
* @param 无
* @return void
*/
public void call() {
System.out.print("roar");
}
}
下面先介绍简单工厂模式:
class:SimpleFactory(简单工厂)
package com.captain.factory;
/**
* <p>Title:简单工厂模式-工厂类<p>
* @author 船长工作室
*/
public class SimpleFactory {
/**
* 召唤动物
* @param s 召唤动物的种类
* @return animal 该种类的动物实例
*/
public static Animal search(String s){
相关文档:
许多程序设计语言都有自己的办法告诉编译器某个数据是“常数”。常数主要应用于下述两个方面:
(1) 编译期常数,它永远不会改变
(2) 在运行期初始化的一个值,我们不希望它发生变化
对
于编译期的常数,编译器(程序)可将常数值“封装”到需要的计算过程里。也就是说,计算可在编译期间提前执行, ......
定义:
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。
还有, singleton能够被状态化;
这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否 ......
1.声明数组引用变量时不能指定数组的长度。如:int x[1];这句话非法。
2.数组对象的创建,例如:
int [] scores = new int[100];
首先在堆中分配内存空间,上述的就是400个字节,然后就给其赋默认值,各个数据类型的默认值不同,int为0.
3.返回数组对象的引用:
int [] x =new int [10]; <=> int size = 10; i ......
/**
* 创建缩略图片
*
* @param orgpath
* @param filename
* @return
* @description: 描述
*/
//此方法对于ssh项目并且针对 上传功能时,非常有用
public static Boolean createAbbreviateImg(String orgpath, String filename) {
Boolea ......