设计模式那些个事儿

简单工厂模式比较适用于事先已经考虑到的可能出现的算法,来构造工厂类实现,如果需要添加新的类,则就需要改变工厂类了,违反开闭原则,简单的说,简单公共适应与业务变化不是很剧烈的场景下如,审批业务,设计时可以判断到的只有“部门经理审批”,“总裁审批”不会过几天又要加入“组长审批”,去修改工厂类,相对来说变化不是很剧烈的。

在软件设计中经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如果我们使用简单工厂,这样会不断地修改工厂类,应对业务变化,违反开闭原则,另外因为实例化产品的判断逻辑在工厂类中,工厂类会变的越来与臃肿。

 

简单工厂模式

定义:
简单工厂模式是类的创建模式,又叫静态工厂方法模式,由一个工厂类根据传入的参量决定创建出哪一种产品类的实例,涉及到工厂角色、抽象产品角色以及具体产品角色。
GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)将简单工厂模式(Simple Factory)看为工厂方法模式的一种特例,两者归为一类。

工厂方法模式

工厂方法模式又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂模式(Polymorphic Factory),定义一个用户创建对象的接口,让子类决定实例化哪一个类,工厂方法模式使一个类的实例化延迟到其子类。工厂方法模式UML--注意工厂方法有CreateProduct方法,用来返回具体的产品

 

 

桥接模式

应用场景:当系统有多维角度分类时,而每一种分类又有非常强的变化时,使用桥接模式比较合适

优点: •Bridge模式使用“合成/聚合复用原则(CARP)”解耦了抽象和实现之间的高耦合关系,使得抽象和实现可以沿着各自的维度来变化(通过各自继承)。
•抽象化角色和具体化角色之间增加更多的灵活性,当有新的抽象或实现方式时,只需要继承一个抽象和继承一个实现即可。

•实现化角色的任何改变不影响客户端。

缺点: •Bridge模式不能应对维度数量的变化,如果要重新抽象出另外一个维度类型,则需要修改抽象角色,将新的实现(Implemetor)组合进抽象(Abstraction)中,违反开闭原则(OCP)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值