Java/C++实现代理模式---婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
类图:
Java代码:
public abstract class Center { protected String name; public Center(String name){this.name=name;} public abstract void findlove(Person person); } public class Marry extends Center { public Marry(String name){super(name);} public void findlove(Person person) { if(person.getAge()<18) { System.out.println(name+":"+person.getName()+",对不起!不能早恋!"); } else if(person.getAge()<100) { System.out.println(name+":"+person.getName()+",我们会为您找到合适的伴侣!"); } else { System.out.println(name+":"+person.getName()+",对不起!您年龄太大了!"); } } } public class Person { protected String name; protected int age; public Person(String name,int age) { this.name=name; this.age=age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class Client { public static void main(String args[]) { Center center1,center2; center1=new Marry("婚介"); center2=new Marry("婚介"); Person b1=new Person("喜羊羊",29); Person b2=new Person("美羊羊",16); center1.findlove(b1); center2.findlove(b2); } }
C++代码:
#include <iostream> #include <string> using namespace std; class Person { public: string name; int age; Person(string n,int a) { name=n; age=a; } }; class Center { protected: string name; public: Center(string n){name=n;} virtual void findlove(Person* person)=0; }; class Marry:public Center { public: Marry(string name):Center(name){} void findlove(Person* person) { if(person->age<18) { cout <<name<<":"<<person->name<<",对不起!不能早恋!" << endl; } else if(person->age<100) { cout <<name<<":"<<person->name<<",我们会为您找到合适的伴侣!" << endl; } else { cout <<name<<":"<<person->name<<",对不起!您年龄太大了!" << endl; } } }; int main() { Center* center1,* center2; center1=new Marry("婚介"); center2=new Marry("婚介"); Person* b1=new Person("喜羊羊",29); Person* b2=new Person("美羊羊",16); center1->findlove(b1); center2->findlove(b2); return 0; }
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!