• 软件设计代理模式


    婚介所
    婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。

    类图

    java

    package rjsj.no14;
    
    public class Client {
        public static void main(String[] args) {
            AbstractPermission permission;
            permission = new MatrimonialAgency();
    
            System.out.println("未成年人...");
            permission.toMatch();
            System.out.println("**************************************************");
            System.out.println("年龄大于18...");
            permission.setLevel(1);
            permission.toMatch();
        }
    }
    package rjsj.no14;
    
    public class MatrimonialAgency implements AbstractPermission{
    
        private RealPermission permission = new RealPermission();
        private int level = 0;
    
        @Override
        public void setLevel(int level) {
            this.level = level;
        }
    
        @Override
        public void toMatch() {
            if(level == 0){
                System.out.println("对不起,不能早恋!");
            } else if (level == 1){
                permission.toMatch();
            }
        }
    }
    package rjsj.no14;
    
    public class RealPermission implements AbstractPermission{
        @Override
        public void setLevel(int level) {
    
        }
    
        @Override
        public void toMatch() {
            System.out.println("开始找对象");
        }
    }
    package rjsj.no14;
    
    public interface AbstractPermission {
        public void setLevel(int level);
        public void toMatch();
    }

    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;
            }
        }
    };
    
    
    
    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;
    }

    运行截图

  • 相关阅读:
    USACO1.3.3Calf Flac
    USACO1.3.1Mixing Milk
    USACO1.3.2Barn Repair
    USACO2.1.4Healthy Holsteins
    USACO1.5.2Prime Palindromes
    USACO1.4.2The Clocks
    USACO2.1.2Ordered Fractions
    PHP关联数组教程
    你的服务器没有正确响应Token验证的解决方法
    微信公众平台消息接口开发(10)语音触发(非识别)
  • 原文地址:https://www.cnblogs.com/Arisf/p/15685665.html
Copyright © 2020-2023  润新知