`
chusiyou
  • 浏览: 5384 次
  • 性别: Icon_minigender_1
  • 来自: 奥格瑞玛
社区版块
存档分类
最新评论

使用匿名内部类完成抽象工厂模式

    博客分类:
  • java
阅读更多
写这篇文章 是我对匿名类以及抽象工厂的一个理解...觉得有所启发就写了下来..希望大家能够一起学习...

抽象工厂类


package com.chusiyou.factory;

public abstract class Factory {

public abstract  UserDao getUserDao();
public abstract PersonDao getPersonDao();
//获得工厂实例的一个方法
public static Factory getFactory(String dataBaseName)
{
//针对数据库不同而采取不同的JDBC操作
if(dataBaseName.equals("mysql"))
{
return new Factory()
{
public PersonDao getPersonDao() {
// TODO Auto-generated method stub
return new PersonDao()
{
//JDBC代码......
public boolean addPerson(Person person) {
// TODO Auto-generated method stub
return false;
}
public boolean deletePerson(Person person) {
// TODO Auto-generated method stub
return false;
}
};
}

public UserDao getUserDao() {
// TODO Auto-generated method stub
return new UserDao()
{

public boolean addUser(User user) {
// TODO Auto-generated method stub
return true;
}

public boolean deleteUser(User user) {
// TODO Auto-generated method stub
return false;
}

};
}

};
}else if(dataBaseName.equals("orcale"))
{
return new Factory()
{


public PersonDao getPersonDao() {
// TODO Auto-generated method stub
return new PersonDao()
{

public boolean addPerson(Person person) {
// TODO Auto-generated method stub
return false;
}

public boolean deletePerson(Person person) {
// TODO Auto-generated method stub
return false;
}

};
}


public UserDao getUserDao() {
// TODO Auto-generated method stub
return new UserDao()
{

public boolean addUser(User user) {
// TODO Auto-generated method stub
return false;
}

public boolean deleteUser(User user) {
// TODO Auto-generated method stub
return false;
}

};
}

};
}
return null;
}

}

一些别的业务接口 和实体类


package com.chusiyou.factory;
//定义对数据库访问的业务接口
public interface PersonDao {
//删除的操作
public boolean deletePerson(Person person);
//增加的操作
public boolean addPerson(Person person);

}


package com.chusiyou.factory;
//定义对数据库访问的业务接口
public interface UserDao {
public boolean deleteUser(User user);
public boolean addUser(User user);

}


package com.chusiyou.factory;

//实体类
public class Person {

}

package com.chusiyou.factory;

//实体类
public class User {

}

测试类

package com.chusiyou.factory;

public class FactoryTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
User user=new User();
      if(Factory.getFactory("Access").getUserDao().addUser(user))
      {
      System.out.println("增加成功");
      }else
      {
      System.out.println("增加失败");
      }
}

}


1
0
分享到:
评论

相关推荐

    工厂模式(简单工厂,普通工厂,抽象工厂)代码java

    这是代码,介绍请查看以下博客地址: http://www.cnblogs.com/homg/p/3548110.html代码乱码请使用utf-8编码。

    安卓java读取网页源码-android:安卓开发相关

    创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型模式(11种):策略...

    【05-面向对象(下)】

    •匿名内部类适合创建那种只需要一次使用的类,定义匿名内部类的语法格式如下: •new 父类构造器(实例列表) |实现接口) •{ • //匿名内部类的 类体部分 •} •匿名内部类不能是抽象类,匿名内部类不能定义...

    Java学习路线:day15

    模板方法设计模式(TemplateMethod)抽象类的练习接口(interface)概述举例接口的应用:代理模式(Proxy)接口的应用:工厂模式Java 8 中关于接口的改进类的内部成员之五:内部类匿名内部类局部内部类的使用注意面向对象...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    抽象工厂模式 工厂方法模式 建造这模式 原型模式 单例模式 行为模式 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 ...

    JAVA面向对象详细资料

    Java面向对象 1 1 学习方法与要求 1 2 面向对象语言与面向过程语言的区别 7 3 面向对象?...41.2 匿名内部类 70 41.3 成员内部类 71 41.4 静态内部类 72 41.5 局部内部类 73 42 作业 :商超案例,以OOP重构 73

    javaSE代码实例

    15.4.2 基于接口实现的匿名内部类 335 15.4.3 匿名内部类的初始化 337 15.4.4 匿名内部类作用的体现 337 15.5 理解内部类 339 15.6 内部接口 340 15.6.1 定义在类中的内部接口 340 15.6.2 定义在接口中...

    Java范例开发大全 (源程序)

     实例159 图书展(抽象工厂模式) 246  实例160 汽车适配器(Adapter适配器模式) 248  8.4 垃圾回收 250  实例161 垃圾回收的机制 250  第9章 面向对象的四大特征(教学视频:65分钟) 252  9.1 抽象 ...

    java范例开发大全(pdf&源码)

    实例159 图书展(抽象工厂模式) 246 实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求...

    java范例开发大全源代码

     实例159 图书展(抽象工厂模式) 246  实例160 汽车适配器(Adapter适配器模式) 248  8.4 垃圾回收 250  实例161 垃圾回收的机制 250  第9章 面向对象的四大特征(教学视频:65分钟) 252  9.1 ...

    传智播客扫地僧视频讲义源码

    15_复数类_所有函数都写在类的内部 16_复数类_所有函数都写在类的外部_上 17_复数类_所有函数都写在类的外部_下 18_复数类_所有函数都写在类的外部(h和cpp分开) 19_类模板中的static关键字 20_案例_数组模板类_需求...

    java范例开发大全

    实例159 图书展(抽象工厂模式) 246 实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 求...

    java 面试题 总结

    以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。 public class ThreadTest1{ private int j; public static void main(String args[]){ ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc(); ...

    超级有影响力霸气的Java面试题大全文档

    由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 21、heap和stack有什么区别。  ...

    JAVA 范例大全 光盘 资源

    实例34 花园布局(抽象工厂模式) 80 实例35 几何图形(适配器模式) 82 第6章 字符串 85 实例36 获取字符串长度 85 实例37 比较字符串 86 实例38 Java字符串与文件的互转 88 实例39 截取带汉字的字符串 91 ...

    Java范例开发大全(全书源程序)

    实例159 图书展(抽象工厂模式) 246 实例160 汽车适配器(Adapter适配器模式) 248 8.4 垃圾回收 250 实例161 垃圾回收的机制 250 第9章 面向对象的四大特征(教学视频:65分钟) 252 9.1 抽象 252 实例162 ...

    java基础题 很全面

    68. Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 15 69. LINUX下线程,GDI类的解释。 15 70. java常用的设计模式?说明工厂模式。 15 71. 内部类可以...

    千方百计笔试题大全

    44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)? 12 45、内部类可以引用他包含类的成员吗?有没有什么限制? 12 46、java 中实现多态的机制是什么...

    java面试宝典

    44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)? 12 45、内部类可以引用他包含类的成员吗?有没有什么限制? 12 46、java 中实现多态的机制是什么...

Global site tag (gtag.js) - Google Analytics