java匿名内部类实现工厂方法模式
来源:互联网 发布:声音编辑软件中文版 编辑:程序博客网 时间:2024/05/23 10:30
先介绍一下匿名内部类:
public interface Contents { int value();}public class Parcel7 { public Contents contents(){//匿名类开始 return new Contents() { private int i=11; @Override public int value() { return i; } };//匿名类结束 } public static void main(String[] args){ Parcel7 p=new Parcel7(); Contents c=p.contents(); }}//实际上匿名类就是用一个方法将返回值的生成与表示这个返回值的类的定义结合在一起。
上面代码相当于:
public interface Contents { int value();}public class Parcel7b { class MyContents implements Contents{ private int i=11; public int value(){return i;} } public Contents contents(){ return new MyContents(); } public static void main(String[] args){ Parcel7b p=new Parcel7b(); Contents c=p.contents(); }}
匿名内部类实现工厂方法模式:
interface Service {//抽象产品 void method1(); void method2();}interface ServiceFactory{//抽象工厂 Service getService();}class Implementation1 implements Service{//具体产品1 private Implementation1(){} public void method1(){ System.out.println("Implementation1 method1"); } public void method2(){ System.out.println("Implementation1 method2"); } public static ServiceFactory factory=new ServiceFactory() { @Override public Service getService() { return new Implementation1(); } };}class Implementation2 implements Service{//具体产品2 private Implementation2(){} public void method1(){ System.out.println("Implementation2 method1"); } public void method2(){ System.out.println("Implementation2 method2"); } public static ServiceFactory factory=new ServiceFactory() { @Override public Service getService() { return new Implementation2(); } };}public class Factories { public static void serviceConsumer(ServiceFactory fact){ Service s=fact.getService();//工厂生产产品 s.method1(); s.method2(); } public static void main(String[] args){ serviceConsumer(Implementation1.factory); serviceConsumer(Implementation2.factory); }}
具体产品的构造器都是private,并且没有必要创建作为工厂的具名类。另外,你经常只需要单一的工厂对象,因此在本例中它被创建为Service实现中的一个static域。
阅读全文
0 0
- java匿名内部类实现工厂方法模式
- java匿名内部类实现工厂设计方法
- Java 匿名内部类 工厂模式
- 匿名内部类工厂方法-内部类
- 匿名内部类实现工厂方法的两个典例
- java 中方法工厂和匿名内部类
- Java中匿名内部类的工厂方法使用
- JAVA匿名内部类实现工厂化生产
- 利用匿名内部类实现Java接口方法
- 利用匿名内部类实现Java接口方法
- JAVA之内部类--成员内部类- 静态内部类- 方法内部类- 匿名内部类
- Java----匿名内部类与适配器模式
- 【幻化万千戏红尘】qianfengDay10-java基础学习:成员内部类、静态内部类、局部和匿名内部类,设计模式之简单工厂模式
- 20160308接口内部类:Scanner、工厂设计模式、匿名类
- Java方法工厂,接口,常用日期类Date面向对象,匿名内部类局部类
- 从头认识java-8.8 使用匿名内部类改造7.8章节的工厂方法
- 工厂方法模板(java编程思想 使用匿名内部类)
- JAVA匿名内部类的构造方法
- JVM性能调优之生成堆的dump文件
- MySQL基础和jdbc基础操作
- HTTP常链接和短链接
- javascript Date format(js日期格式化)
- JVM GC调优一则--增大Eden Space提高性能
- java匿名内部类实现工厂方法模式
- 浅谈HTTP GET POST
- 2017.08.09
- js内存泄露的几种情况
- hadoop 分片与分块,map task和reduce task的理解
- Resource interpreted as Stylesheet but transferred with MIME type text/plain
- api接口调用实例(response json_encode json)创建展视互动直播间,
- BigDecimal(double)” should not be used
- RN开发实践——仿携程App(三)