惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
博客园 - 【当耐特】
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Fortinet All Blogs
Y
Y Combinator Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
B
Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理

博客园 - 隴上煙雨劍

什么是交叉验证 代理模式 中介模式 桥接模式 吐槽一下依赖倒置这个糟糕的名字 适配器模式 设计模式之状态模式 设计模式之装饰器模式 mysql插入数据如果存在则忽略 自己手写一个js的双向绑定 Java已经不再是以前的java了 无法访问9200端口的ElasticSearch服务 Forbidden You don't have permission to access / on this server [转帖]快速激活最新JetBrains公司系列产品包括最新的phpstorm10 【转】CI去掉index.php VirtualBox在win8.1中无法安装64位虚拟机 多谢Mono Ubuntu14.04上面安装mono3.12版本 更新线上数据库时候的安全操作
一句话设计模式
隴上煙雨劍 · 2023-07-23 · via 博客园 - 隴上煙雨劍

创建型模式(5种)
单例模式 public static readonly User Administrator=new User("admin");
原型模型 INewObject newObj=protoTpe.Clone();
工厂模式 IProduct product=Factory.GetProduct("请输入产品名称");
简单工厂模式(不算23种里面)
工厂方法模式 IFactory factory=new GuoChan(); ICar car=factory.GetCar(); // 工厂就一种产品
抽象工厂模式 IFactory factory=new GuoChan(); ICar car=factory.GetCar(); IBike motor=factory.GetMotor();
建造者模式 IBuilder builder=new SomeBuilder(); builder.SetTimeout(1000).setXXX("aaa"); var client=builder.Build();
结构型模式(7种)
代理模式 var html=new CDNProxy("https://www.163.com");
适配器模式 IRemote remote=new RemoteSimulator(new XiaoMiMobile());
桥接模式 (配置项太多的话,用一个接口的话,就太乱套了,所以拆成多个接口,这样通过主接口对象获取的时候,其它附带属性通过构造函数动态的new进去,不就动态配置了么)var 三角形=new Triangle(new Color("red"))
装饰器模式 IButton button=new Button(); button=new PictureDecorator(button,"123.jpg");
外观模式 IGovCheckFacade checkFacade=new GovCheckFacade("广西核验","南宁核验","北京核验","RedisCache","SolrResearch");
享元模式 IMonster monster=MonsterCache.Get("normal"); monster.Display(23,55); monster.Display(32,53);
组合模式 IWalker walker; walker.Walk();// 可以支持单个对象,也能支持一组对象
行为型模式(11种)
模板方法模式 : 说白了就是抽象类取了个别名……!
策略模式 : 有些标准的动作,只是不同的策略下具体做法不一样。
命令模式 : ICommand command=new SaveCommand(); ExecutorPool.Run(commandList, cmd=> cmd.Execute()); //vscode 中的插件输入
责任链模式 : if(canProcess(this.data))){ return this.realProcess();} else if (this.nextHandler!=null){ return this.nextHandler.process();}
状态模式 : IStatus 这个状态接口中定义各种可能的操作,然后通过setStatus(new StatusA()); 然后就影响主对象的方法。
观察者模式 : AddObservor(IObservor observor);C#中的事件就是观察者。
中介者模式 : 聊天室的Chatroom做中介,一堆user聊天的时候给其他人发送
迭代器模式 : List<String> ;foreach的时候不用知道内部结构是啥。
访问者模式 : IDataHolder someData=new SomeDataHolder(); someData.welCome(visitor);
备忘录模式 : IEditor editor=new EmEditor(); editor.SaveCraft(memoHolder); //balabala ; editor.Restore(memoHolder);
解释器模式 : IExpression a=new AddExpression(); IExpression s=new SubExpression(); Explain( new Expression[]{a,s} );