首页 > 其他 > 详细

设计模式之门面模式

时间:2016-05-28 17:29:37      阅读:109      评论:0      收藏:0      [点我收藏+]

门面模式

门面模式是把具体的实现放在自己内部,对外提供一个外观给外部去调用。让使用者可以很方便地使用它。这样可以做到内部的变更交给内部自己去处理,使得责任单一。也让我们的系统不需要暴露太多的细节给外部。

技术分享

 

实例代码

public class User {
    
    private String name;
    
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    
}

/**
 * 消息体
 * @author wxh
 * @vertion 1.0
 */
public class Status {

    private int code;
    
    private String message;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
    
}

/**
 * 创建用户的服务接口
 * @author wxh
 * @vertion 1.0
 */
public interface ICreateUserService {
    
    boolean createrUser( User user ); 

}

/**
 * 修改用户密码的服务接口
 * @author wxh
 * @vertion 1.0
 */
public interface IPasswordService {
    
    boolean changePassword( String name, String newPassword );

}

/**
 * 处理用户信息的服务接口
 * @author wxh
 * @vertion 1.0
 */
public interface IUserService {
    
    Status createUser(String name, String password);
    
    Status changeUserPassword(String name, String password);

}

/**
 * UserService其实就是一个对外公开的门面
 * @author wxh
 * @vertion 1.0
 */
public class UserService implements IUserService{

    private ICreateUserService createUserService;
    
    private IPasswordService passwordService;
    
    @Override
    public Status createUser(String name, String password) {
        Status status = new Status();
        
        User user = new User();
        user.setName( name );
        user.setPassword( password );
        
        //隐藏具体的实现细节
        boolean result = createUserService.createrUser( user );
        
        if ( result ) {
            status.setCode(0);
            status.setMessage("用户创建成功!");
        } else {
            status.setCode(-1);
            status.setMessage("用户创建失败!");
        }
        return status;
    }

    @Override
    public Status changeUserPassword(String name, String newPassword) {
        Status status = new Status();
        
        //隐藏具体的实现细节
        boolean result = passwordService.changePassword(name, newPassword);
        
        if ( result ) {
            status.setCode(0);
            status.setMessage("密码修改成功!");
        } else {
            status.setCode(-1);
            status.setMessage("密码修改失败!");
        }
        return status;
    }

}

 

设计模式之门面模式

原文:http://www.cnblogs.com/dahao1020/p/5537706.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!