java设计模式 (1) 工厂模式,抽象工厂模式,单子模式
来源:互联网 发布:中建七局网络教育平台 编辑:程序博客网 时间:2024/04/29 02:56
《一》 工厂模式
工厂模式就是实例化对象,用工厂方法代替new操作的一种模式,会给你系统带来更大的可扩展性和尽量少的修改量。
Car.java
//创建接口
public interface Car {
public void Price();
public void race();
}
bmw.java
//接口实现
public class bmw implements Car {
@Override
public void Price() {
// TODO Auto-generated method stub
System.out.println(“100万元”);
}
@Override
public void race() {
// TODO Auto-generated method stub
System.out.println(“最高时速300km/h”);
}
}
Volkswagen.java
//接口实现
public class Volkswagen implements Car{
@Override
public void Price() {
// TODO Auto-generated method stub
System.out.println(“20万元”);
}
@Override
public void race() {
// TODO Auto-generated method stub
System.out.println(“最高时速150km/h”);
}
}
CarFactory.java
//创建工厂
public class CarFactory {
public Car style(String type){
if(“bmw”.equals(type))
{
return new bmw();
}
else if(“Volkswagen”.equals(type)){
return new Volkswagen();
}
else{
System.out.println(“没有要找的类型”);
return null;
}
}
}
CarTest.java
//测试工厂模式
public class CarTest {
public static void main(String[] args) { // TODO Auto-generated method stub CarFactory factory=new CarFactory(); //实例化 Car car=factory.style("bmw"); car.Price(); car.race(); }
}
UML–工厂模式
《二》 抽象工厂模式
一个抽象工厂类,可以派生出多个具体工厂类。每个抽象产品类可以派生出多个具体产品类,每个具体工厂类可以创建多个具体产品类。将不变的部分提取出来,将可变的部分留作接口,以达到最大程度上的复用。
//car接口 Car.java
public interface Car {
public void price();
public void race();
}
bmw.java
public class bmw implements Car {
@Overridepublic void price() { // TODO Auto-generated method stub System.out.println("宝马的价格是300万元");}@Overridepublic void race() { // TODO Auto-generated method stub System.out.println("宝马的速度可达到300km/h");}
}
Volkswagen.java
public class Volkswagen implements Car{
@Override
public void price() {
// TODO Auto-generated method stub
System.out.println(“大众的价格是100万元”);
}
@Override
public void race() {
// TODO Auto-generated method stub
System.out.println(“大众的速度为150km/h”);
}
}
CarFactory.java
//工厂接口
public interface CarFactory {
public Car produce();
}
OneFactory
public class OneFactory implements CarFactory{
@Override
public Car produce() {
// TODO Auto-generated method stub
return new bmw();
}
}
TwoFactory
public class TwoFactory implements CarFactory{
@Override
public Car produce() {
// TODO Auto-generated method stub
return new Volkswagen();
}
}
Test_car
public class Test_car {
public static void main(String[] args) {
// TODO Auto-generated method stub
CarFactory factory=new OneFactory(); //找到工厂
Car car=factory.produce();
car.pric ()
car.race();//生产产品
}
}
《三》 单子模式
保证单例类只能有一个实例,而且必须是自己创建自己的唯一实例,必须给所有其他对象提供这一实例。
//创建型模式,只能产生一个实例供外部使用,
public class Single{
private static final Single s=new Single();//私有化
private Single(){}
public static Single getInstance(){ return s;}//定义一个静态方法并返回该类的实例
}
/**懒汉式是在类被主动调用时才会被实例化,
实现了类的延迟加载,此处通过两种方式来实现单例模式,
一种是通过双重校验锁的方式,
另一种是通过静态内部类的方式**/
//双重校验锁
public class Single1 {
private static Single1 s=null;
private Single1(){
} public static Single1 getInstance(){ if(s==null){ synchronized (Single1.class){ if(s==null){ s=newSingle1(); } } } return s; }
}
- java设计模式 (1) 工厂模式,抽象工厂模式,单子模式
- 设计模式---工厂模式、抽象工厂模式
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- java设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- Java设计模式-抽象工厂设计模式
- java设计模式--抽象工厂
- Java设计模式-抽象工厂
- Java设计模式--抽象工厂
- java设计模式-抽象工厂
- Java设计模式-工厂方法模式和抽象工厂模式
- Java设计模式--简单工厂模式与抽象工厂模式
- JDBC的配置文件与工具类的封装
- 42. Trapping Rain Water
- LeetCode (4)Median of Two Sorted Arrays
- 空间复杂度为0的数据交换
- 计协程序小组4月15日常规训练
- java设计模式 (1) 工厂模式,抽象工厂模式,单子模式
- TableView的性能优化-主要针对滑动时候出现的卡顿现象
- Android shape使用总结
- HDU3746(KMP求循环节)
- Invalid keystore format
- [已解决] MediaPlayer.setVolume设置声音大小失效问题
- 红楼梦十四支曲
- unity手游UI界面开发之商店等界面
- 珍贵技术资料----只为最努力的你