设计模式(二)之适配器模式Adapter(类继承与对象代理)
2009-11-03 19:59
399 查看
一、类继承
Banner类:
package adapter;
public class Banner {
private String string;
public Banner(String string) {
this.string = string;
}
public void showWithPattern() {
System.out.println("("+string+")");
}
public void showWithAster() {
System.out.println("*"+string+"*");
}
}
Print接口:
package adapter;
public interface Print {
public abstract void printWeak();
public abstract void printStrong();
}
PrintBanner类:
package adapter;
public class PrintBanner extends Banner implements Print{
public PrintBanner(String string) {
super(string);
}
public void printStrong() {
showWithAster();
}
public void printWeak() {
showWithPattern();
}
}
Main类:
package adapter;
public class Main {
public static void main(String[] args) {
Print p=new PrintBanner("Hello");
p.printWeak();
p.printStrong();
}
}
二、对象代理
Banner类:
package adapter;
public class Banner {
private String string;
public Banner(String string) {
this.string = string;
}
public void showWithPattern() {
System.out.println("("+string+")");
}
public void showWithAster() {
System.out.println("*"+string+"*");
}
}
Print类:
package adapter2;
public abstract class Print {
public abstract void printWeak();
public abstract void printStrong();
}
PrintBanner类:
package adapter2;
public class PrintBanner extends Print{
private Banner banner;
public PrintBanner(String string){
this.banner=new Banner(string);
}
@Override
public void printStrong() {
banner.showWithAster();
}
@Override
public void printWeak() {
banner.showWithPattern();
}
}
Main类:
package adapter;
public class Main {
public static void main(String[] args) {
Print p=new PrintBanner("Hello");
p.printWeak();
p.printStrong();
}
}
Banner类:
package adapter;
public class Banner {
private String string;
public Banner(String string) {
this.string = string;
}
public void showWithPattern() {
System.out.println("("+string+")");
}
public void showWithAster() {
System.out.println("*"+string+"*");
}
}
Print接口:
package adapter;
public interface Print {
public abstract void printWeak();
public abstract void printStrong();
}
PrintBanner类:
package adapter;
public class PrintBanner extends Banner implements Print{
public PrintBanner(String string) {
super(string);
}
public void printStrong() {
showWithAster();
}
public void printWeak() {
showWithPattern();
}
}
Main类:
package adapter;
public class Main {
public static void main(String[] args) {
Print p=new PrintBanner("Hello");
p.printWeak();
p.printStrong();
}
}
二、对象代理
Banner类:
package adapter;
public class Banner {
private String string;
public Banner(String string) {
this.string = string;
}
public void showWithPattern() {
System.out.println("("+string+")");
}
public void showWithAster() {
System.out.println("*"+string+"*");
}
}
Print类:
package adapter2;
public abstract class Print {
public abstract void printWeak();
public abstract void printStrong();
}
PrintBanner类:
package adapter2;
public class PrintBanner extends Print{
private Banner banner;
public PrintBanner(String string){
this.banner=new Banner(string);
}
@Override
public void printStrong() {
banner.showWithAster();
}
@Override
public void printWeak() {
banner.showWithPattern();
}
}
Main类:
package adapter;
public class Main {
public static void main(String[] args) {
Print p=new PrintBanner("Hello");
p.printWeak();
p.printStrong();
}
}
相关文章推荐
- 黑马程序员_学习笔记:4) 面向对象2:继承、this、super、finally、Abstract、模板设计模式、接口
- 设计模式之代理模式,装饰模式和继承
- 增强 修改对象的集中方法(继承、装饰者模式、动态代理)
- 设计模式之代理(Proxy)----对象结构型模式
- iOS设计模式学习 (二) OC协议之接口继承和代理设计
- 面向对象设计模式之---代理模式(Proxy Pattern)
- 谈谈有关设计模式的思想精髓:变继承关系为组合关系、如何创建对象(单例、状态、装饰者模式)
- 黑马程序员—Java面向对象(单例设计模式、面向对象的继承、final关键字)
- Java-马士兵设计模式学习笔记-代理模式-聚合与继承方式比较
- 类继承和对象组合(摘录设计模式)
- 【设计模式】继承和对象组合
- 代理对象我所理解的设计模式(C++实现)——代理模式(Proxy Pattern)
- 设计模式----优先使用对象组合,而非类继承
- 设计模式学习(一):java 面向对象特征:抽象、封装、多态、继承
- 【编程素质】设计模式-代理模式(委托模式、Proxy Pattern):动态扩充对象功能
- 面向对象设计模式---之代理模式
- JavaSE实战——面向对象(上) 封装,继承,对象初始化流程,单例设计模式
- 设计模式十三:proxy(代理)——对象结构型模式
- 设计模式之十二:Proxy(代理)—对象结构型模式
- 设计模式知识连载(5)---继承_1:子类的原型对象-类式继承