`
lvwenwen
  • 浏览: 955578 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

java设计模式之缺省适配器模式(构型模式)

阅读更多

缺省适配器模式:
文章链接:http://jzinfo.iteye.com/blog/558373
1.这个时候我们可以考虑使用一个中间类来解决这个问题,这个中间类空实现接口的所有方法,
同时,我们将这个中间类定义为抽象的,使其不可能被实例化,实例化中间过渡类没有任何实际的意义。
然后让具体的类继承这个中间类只让他覆盖自己所需的方法即可。
2.我们将这个中间过渡类称为 “缺省适配类”,这个模式也叫做缺省适配模式(Default Adapter)。

 

 

(1).缺省适配器模式:是为了一个接口提供缺省实现,这样子类型可以从这个缺省实现进行扩展,而不必从原有接口进行扩展,

是适配器模式的特例

package com.createtype.desginpatterns.defaultadapter;

public interface Study {
	public void StudyGrade1();

	public void StudyGrade2();

	public void StudyGrade3();

	public void StudyGrade4();

	public void ThesisPresentation();
}

package com.createtype.desginpatterns.defaultadapter;

public abstract class StudyAdapter implements Study {
	public void StudyGrade1() {
	}

	public void StudyGrade2() {
	}

	public void StudyGrade3() {
	}

	public void StudyGrade4() {
	}

	public void ThesisPresentation() {
	};
}

package com.createtype.desginpatterns.defaultadapter;

public class SpecialStudent extends StudyAdapter {
	public SpecialStudent() {
	}

	public void StudyGrade1() {
		System.out.println("读大学一年级");
	}

	public void StudyGrade2() {
		System.out.println("读大学二年级");
	}

	public void StudyGrade3() {
		System.out.println("读大学三年级");
	}

	public void ThesisPresentation() {

		System.out.println("修满了学分,参加论文答辩");

	}
}

package com.createtype.desginpatterns.defaultadapter;

public class GeneralStudent extends StudyAdapter {
	public GeneralStudent() {
	}

	public void StudyGrade1() {
		System.out.println("读大学一年级");
	}

	public void StudyGrade2() {
		System.out.println("读大学二年级");
	}

	public void StudyGrade3() {
		System.out.println("读大学三年级");
	}

	public void StudyGrade4() {
		System.out.println("读大学四年级");
	}

	public void ThesisPresentation() {

		System.out.println("修满了学分,参加论文答辩");

	}
}
package com.createtype.desginpatterns.defaultadapter;
public class DiscontinueStudyStudent extends StudyAdapter
{
 public DiscontinueStudyStudent(){}

 public void StudyGrade1(){
    System.out.println("读大学一年级"); 
 }

 public void StudyGrade2(){
    System.out.println("读大学二年级"); 
 }

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics