`

Design Patterns(Structural):Adapter in Java code

阅读更多

Structual Pattern: Adapter

 

什么是Adapter?

Convert the existing interfaces to a new interface to achieve compatibility and reusability of the unrelated classes in one application. Also known as Wrapper pattern.

 

 

Example:
To reuse classes and make new class compatible with existing ones. For example, A clean system is already designed, you want to add more job in, the Extra interface uses adapter pattern to plug in the existing system.

interface Clean {
    public void makeClean();
}
class Office implements Clean{
    public void makeClean() {
        System.out.println("Clean Office");
    }
}
class Workshop implements Clean{
    public void makeClean() {
        System.out.println("Clean Workshop");
    }
}

interface Extra extends Clean{
    public void takeCare();
}
class Facility implements Extra{
    public void makeClean() {
        System.out.println("Clean Facility");
    }
    public void takeCare() {
        System.out.println("Care has been taken");
    }
}

 

In order to reuse Workshop and Office classes,
we create an adapter interface Extra and add new job takeCare in the system.

class Test {
   static void Jobs (Extra job) {
       if (job instanceof Clean) 
           ((Clean)job).makeClean();
       if (job instanceof Extra)
           ((Extra)job).takeCare();
   }
   public static void main(String[] args) {
       Extra e = new Facility();
       Jobs(e);
       Clean c1 = new Office();
       Clean c2 = new Workshop();
       c1.makeClean();
       c2.makeClean();
       e.makeClean();
   }
}

 

 

原文:

http://www.javacamp.org/designPattern/

分享到:
评论

相关推荐

    Design.Patterns.Explained.Simply

    Because using design patterns will allow you to get your tasks done twice as fast, to write better code and to create efficient and reliable software architecture. How do I become a programming ninja...

    js-design-patterns.rar

    这个压缩包"js-design-patterns.rar"包含了一个PDF文档"JavaScript.Design.Patterns.RETAiL.Dec.2007.pdf"和一个名为"code.zip"的代码示例压缩包,两者共同提供了关于JavaScript设计模式的深入理解和实践。...

    Object-Oriented Analysis and Design 第六章

    Object Oriented Analysis and Design 13Structural Design PatternsStructural patterns deal with organizing classes and objects to form larger structures, often by combining them in some way. - Adapter ...

    设计模式-可复用面向对象软件的基础(中英文+src code)

    设计模式分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式(Behavioral Patterns)。 1. **创建型模式** 主要关注对象的创建,它们帮助我们在适当的时候以适当的...

Global site tag (gtag.js) - Google Analytics