设计模式
1.设计模式
设计模式主要包括一下三种创建者模式,结构模式还有行为模式
2创建者模式
主要包括以下工厂模式,单例模式,原型模式还有抽象工厂模式,最后是建造者模式
2.1工厂模式
简单点说:两个接口,一个食物类接口,一个工厂类接口,工厂接口来进行创建食物,使用工厂进行创建对象
2.2抽象工厂模式
例子就是一个店子可以做咖啡还有甜品,所以继承工厂类,做两个视频,一个咖啡,一个蛋糕
可以看出,每一个工厂类都有做产品a还有做产品b的方法
2.3单例模式
顾名思义就是无论如何,指挥产生一个对象instance,最简单的方法就是私有构造函数,然后使用静态变量生成instance,这届得到
1 |
|
2.4建造者模式
这个例子就是工厂工人做每一步,然后最后进行组装
todo:还没写完
3.行为模式
3.1适配器模式
例子:就是电源适配器(欧洲电源需要转接口才能使用),适配器就是转换头
所以我们需要实现欧洲的接口,但是继承国内的充电头,一个impl一个extend
然后在impl里面调用extend函数
3.2桥接模式
主要是减少使用继承类,例如四边形,子类是长方形还有正方形,但是子类还有红色和蓝色的长方形
我们使用颜色类聚类到四边形里面,这样就可以减少子类,所以我们,我们在color里面实现,蓝色还有绿色,
3.3桥接模式
就是代购火车票,方法都一样的,售票处售票,代购店也要售票,代购店售票的方法就是使用售票处的方法
都要实现接口,同时调用真实接口
3.4享元模式
贡献模式,每次调用都是相同的的值,但是修改一些属性而已
主要使用map,来得到相同的元素,map[i]
3.5外观模式
基金经理帮我们来买股票,这样我们就不需自己进行选择股票
3.6装饰模式
就是炒饭+鸡蛋+肉+其他的,因此,炒房还有配料都要继承食物类别
同时配料类还要聚合食物类,这样就可以进行添加配料
decorate是配料类,聚合食物类,设置get set方法,最后的总价价格=this.getprice+this.getfood.getcost
4.行为型模式
4.1策略模式
最简单的模式,直接使用接口实现多个策略就可以,聚合策略就可以
4.2命令模式
简单来说就是命令来控制厨师,让厨师做事,让服务员收拾订单
4.3中介模式
中介这个人看碟子下菜,看对面是什么类型,然后调用不同的交互方法
使用get set方法来把中介者里面.
同时colleagues也要把中介放进去
4.4观察者模式
例子就是订阅公众号,公众号添加用户,公众号推送更新,调用用户更新.使用list添加
subject是公众号,observe是微信用户,公众号的时候添加用户,使用for
4.5状态模式
state是多个状态有电梯运行,电梯停止,电梯开门等多个状态,减少判断switch逻辑