网站转应用,wordpress add_user_meta,网络销售工作怎么样,经典软文案例200字Java 的工厂方法及代理模式
工厂方法(FactoryMethod)
概述#xff1a;定义一个用于创建对象的接口#xff0c;让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。
适用性#xff1a;
当一个类不知道它所必须创建的对象的类的时候当一个类希望由它的…Java 的工厂方法及代理模式
工厂方法(FactoryMethod)
概述定义一个用于创建对象的接口让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。
适用性
当一个类不知道它所必须创建的对象的类的时候当一个类希望由它的子类来指定它所创建的对象的时候 当类将创建对象的职责委托给多个帮助子类中的某一个并且你希望将哪一个帮助子类是代理者这一信息局部化的时候
示例可参考http://blog.csdn.net/jason0539/article/details/23020989
总结
FactoryMethod模式是设计模式中应用最为广泛的模式在面向对象的编程中对象的创建工作非常简单对象的创建时机却很重要。FactoryMethod解决的就是这个问题它通过面向对象的手法将所要创建的具体对象的创建工作延迟到了子类从而提供了一种扩展的策略较好的解决了这种紧耦合的关系。
代理模式(Proxy)
概述为其他对象提供一种代理以控制对这个对象的访问
示例引用自http://blog.csdn.net/goskalrie/article/details/52458773
/**方式一聚合式静态代理* author Goser (mailto:goskalrie163.com)* Since 2016年9月7日*/
//1.抽象主题接口
public interface Manager {void doSomething();
}
//2.真实主题类
public class Admin implements Manager {public void doSomething() {System.out.println(Admin do something.);}
}
//3.以聚合方式实现的代理主题
public class AdminPoly implements Manager{private Admin admin;public AdminPoly(Admin admin) {super();this.admin admin;}public void doSomething() {System.out.println(Log:admin操作开始);admin.doSomething();System.out.println(Log:admin操作结束);}
}
//4.测试代码Admin admin new Admin();Manager m new AdminPoly(admin);m.doSomething();
//方式二继承式静态代理
//与上面的方式仅代理类和测试代码不同
//1.代理类
public class AdminProxy extends Admin {Overridepublic void doSomething() {System.out.println(Log:admin操作开始);super.doSomething();System.out.println(Log:admin操作开始);}
}
//2.测试代码AdminProxy proxy new AdminProxy();proxy.doSomething();
接口用法总结
通过接口可以实现不相关类的相同行为而不需要考虑这些类之间的层次关系。通过接口可以指明多个类需要实现的方法一般用于定义对象的扩张功能。接口主要用来定义规范。解除耦合关系
接口与抽象类的关系
No.区别点抽象类接口1定义包含一个抽象方法的类抽象方法和全局常量的集合2组成构造方法、抽象方法、普通方法、常量、变量常量、抽象方法3使用子类继承抽象类(extends)子类实现接口(implements)4关系抽象类可以实现多个接口接口不能继承抽象类但允许继承多个接口5常见设计模式模板设计工厂设计、代理设计6对象都通过对象的多态性产生实例化对象7局限抽象类有单继承的局限接口没有此局限8实际作为一个模板是作为一个标准或是表示一种能力9选择如果抽象类和接口都可以使用的话优先使用接口因为避免单继承的局限10特殊一个抽象类中可以包含多个接口一个接口中可以包含多个抽象类