Ultimate SD Upscale深度解析:如何在有限显存下实现专业级AI图像放大
2026/6/1 16:42:41
桥接模式的主要应用场景在于多种组合,例如汽车有高配、中配、低配,对于每种配置又有红色、黄色等多种颜色。我这里举例是使用微信、钉钉等进行消息推送,消息又有一般消息,紧急的消息等。我们在消息推送前可以做一些前置处理,每种消息类型处理的代码又不一样。
这样组合就很多了:
微信+错误消息
微信+普通消息
钉钉+错误消息
邮件+普通消息
…
所以就得分开,客户端自行组合
咱们也不知道前置处理是啥,就客户端(调用方)自行决定
publicabstractclassPusher{protectedIPreprocesspreprocess;publicPusher(IPreprocesspreprocess){this.preprocess=preprocess;}publicvoidPush(stringmessage){stringnewMessage=preprocess.Process(message);this.PushHandler(newMessage);}protectedabstractvoidPushHandler(stringmessage);}publicclassWeiChatPusher:Pusher{publicWeiChatPusher(IPreprocesspreprocess):base(preprocess){}protectedoverridevoidPushHandler(stringmessage){Console.WriteLine($"[微信推送消息]:{message}");}}publicclassDingPusher:Pusher{publicDingPusher(IPreprocesspreprocess):base(preprocess){}protectedoverridevoidPushHandler(stringmessage){Console.WriteLine($"[钉钉推送消息]:{message}");}}publicinterfaceIPreprocess{stringProcess(stringmessage);}publicclassInfoMessagePreprocess:IPreprocess{publicstringProcess(stringmessage){return"[消息类型INFO]"+message;}}publicclassErrorMessagePreprocess:IPreprocess{publicstringProcess(stringmessage){Console.WriteLine("[通知老板,出大事了]"+message);return"[消息类型ERROR]"+message;}}staticvoidMain(string[]args){//微信推送普通消息//IPreprocess preprocess = new InfoMessagePreprocess();//var pusher = new WeiChatPusher(preprocess);//pusher.Push("老王换了个新发型");//钉钉推送严重消息IPreprocesspreprocess=newErrorMessagePreprocess();varpusher=newDingPusher(preprocess);pusher.Push("老刘交女朋友了");Console.ReadKey();}自己也可以扩展什么后置处理