JAVA接口工厂和代理设计模式,简单
2018-02-05 20:24
561 查看
工厂设计模式
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("eating apple.");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("eating orange.");
}
}
class Factory {
public static Fruit getInstance(String className){
if("apple".equals(className)){
return new Apple();
}else if("orange".equals(className)){
return new Orange();
}else{
return null;
}
}
}
public class TestDemo{
public static void main(String args [] ){
Fruit p =Factory.getInstance("apple");
p.eat();
}
}
代理设计模式
interface Subject{
public void make();
}
class RealSubject implements Subject{
public void make(){
System.out.println("核心主题");
}
}
//代理设计
class ProxySubject implements Subject{
private Subject subject;
public ProxySubject(Subject subject){
this.subject = subject;
}
public void prepare(){
System.out.println("准备");
}
public void destory(){
System.out.println("结束");
}
public void make(){
this.prepare();
this.subject.make();
this.destory();
}
}
public class TestDemo{
public static void main(String args[]){
Subject sub = new ProxySubject(new RealSubject());//向上传递
sub.make();
}
}
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("eating apple.");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("eating orange.");
}
}
class Factory {
public static Fruit getInstance(String className){
if("apple".equals(className)){
return new Apple();
}else if("orange".equals(className)){
return new Orange();
}else{
return null;
}
}
}
public class TestDemo{
public static void main(String args [] ){
Fruit p =Factory.getInstance("apple");
p.eat();
}
}
代理设计模式
interface Subject{
public void make();
}
class RealSubject implements Subject{
public void make(){
System.out.println("核心主题");
}
}
//代理设计
class ProxySubject implements Subject{
private Subject subject;
public ProxySubject(Subject subject){
this.subject = subject;
}
public void prepare(){
System.out.println("准备");
}
public void destory(){
System.out.println("结束");
}
public void make(){
this.prepare();
this.subject.make();
this.destory();
}
}
public class TestDemo{
public static void main(String args[]){
Subject sub = new ProxySubject(new RealSubject());//向上传递
sub.make();
}
}
相关文章推荐
- 设计模式之—简单工厂方法(StaticFactory )-Java实现
- Java 设计模式中,简单工厂、工厂方法、抽象工厂的区别
- 设计模式之一:Java中的简单工厂模式
- java 设计模式-创建模式之简单工厂模式
- Java实践之路(设计模式)——工厂模式(简单工厂)
- java 简单工厂设计模式
- java设计模式笔记之简单工厂
- Java设计模式----------简单工厂类+工厂方法(FactoryMethod)
- java设计模式之简单工厂模式
- 追MM与设计模式的JAVA实现-简单工厂方法
- java设计模式-创建模式之 简单工厂,工厂方法和抽象工厂的区别总结
- JAVA设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- Java简单工厂设计模式
- java设计模式之简单工厂模式
- java 设计模式 学习笔记(1) - 简单工厂模式
- Java设计模式学习1—简单工厂模式
- JAVA接口的应用及工厂模式的简单示例
- java 设计模式-简单工厂
- 设计模式--创建模式--简单工厂模式--java
- 抽象类和接口的区别(里面有适配器设计、工厂设计、代理设计模式)