14. 代理模式
[实验任务一]:婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
类图
代码
java版
package test14;
public interface AbstractPermission {
public void findFriend();
}
package test14;
public class Client {
public static void main(String[] args) {
AbstractPermission permission = new PermissionProxy(16);
permission.findFriend();
}
}
package test14;
public class PermissionProxy implements AbstractPermission{
private RealPermission permission = new RealPermission();
private int age;
public PermissionProxy(int age){
this.age = age;
}
@Override
public void findFriend() {
if(age<18){
System.out.println("对不起,不能早恋");
}else {
permission.findFriend();
}
}
}
package test14;
public class RealPermission implements AbstractPermission{
@Override
public void findFriend() {
System.out.println("找npy");
}
}
c++版
#include <iostream>
using namespace std;
class AbstractPermission{
public:
AbstractPermission(){}
virtual void findFriend(){};
};
class RealPermission: public AbstractPermission{
public:
RealPermission():AbstractPermission(){
}
void findFriend(){
cout<<"找npy";
}
};
class PermissionProxy: public AbstractPermission{
private:
RealPermission* permission = new RealPermission();
int age;
public:
PermissionProxy(int age):AbstractPermission(){
this->age = age;
}
void findFriend(){
if(age<18){
cout<<"对不起,不能早恋";
} else{
permission->findFriend();
}
}
};
int main(){
// AbstractPermission* permission = new AbstractPermission();
PermissionProxy* permissionProxy = new PermissionProxy(16);
// permission = permissionProxy;
permissionProxy->findFriend();
}
本文作者:又一岁荣枯
本文链接:https://www.cnblogs.com/java-six/p/16788703.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步