和顺网站建设电商推广和网络推广的策略
news/
2025/10/6 11:15:00/
文章来源:
和顺网站建设,电商推广和网络推广的策略,网站模板怎么使用教程,wordpress调用tag标签带超链接桥梁模式
定义
桥梁模式#xff08;Bridge Pattern#xff09;也叫做桥接模式。
将抽象和显示解耦#xff0c;使得两者可以独立地变化。
优缺点、应用场景
优点
抽象和实现的解耦。 这是桥梁模式的主要特点#xff0c;它完全是为了解决继承的缺点而提出的设计模式。优…桥梁模式
定义
桥梁模式Bridge Pattern也叫做桥接模式。
将抽象和显示解耦使得两者可以独立地变化。
优缺点、应用场景
优点
抽象和实现的解耦。 这是桥梁模式的主要特点它完全是为了解决继承的缺点而提出的设计模式。优秀的拓展能力 在例子中如果山寨公司要生产新产品只需要新建一个产品类然后通过有参构造传给公司类即可。屏蔽实现细节 高层模型无需关心细节的实现。
应用场景
不希望使用继承的场景接口或抽象类不稳定的场景。重用性要求较高的场景。
代码模拟场景
公司都会先生产产品再做销售有些公司会生产热门山寨产品赚一波风口钱后就转向生产另一种商品。
非桥梁模式
小结
在公司抽象中生产和销售都单独作为一个方法即一个类只能实现一种商品的生产与销售。当公司业务线变化后需要修改公司类自身的代码逻辑不利于拓展。
UML图 公司抽象和实现
/*** 公司 抽象*/
public abstract class Corp {/*** 生产产品*/protected abstract void produce();/*** 销售产品*/protected abstract void sell();/*** 核心工作——赚钱*/public void makeMoney() {// 先生产后销售this.produce();this.sell();}
}/*** 房产公司*/
public class RealtyCorp extends Corp {static {System.out.println(房地产公司是这样运行的);}Overrideprotected void produce() {System.out.println(房地产公司盖房子...);}Overrideprotected void sell() {System.out.println(房地产公司买房子);}Overridepublic void makeMoney() {super.makeMoney();System.out.println(房地产公司赚大钱);}
}/*** 服装公司*/
public class ClothesCorp extends Corp {static {System.out.println(服装公司是这样运行的);}Overrideprotected void produce() {System.out.println(服装公司盖房子...);}Overrideprotected void sell() {System.out.println(服装公司买房子);}Overridepublic void makeMoney() {super.makeMoney();System.out.println(服装公司赚小钱);}
}/*** IPod山寨公司*/
public class IPodCorp extends Corp {static {System.out.println(山寨公公司是这样运行的);}Overrideprotected void produce() {System.out.println(我生产IPod...);}Overrideprotected void sell() {System.out.println(我销售IPod嘿嘿嘿...);}Overridepublic void makeMoney() {super.makeMoney();System.out.println(山寨也能赚...);}
}入口类方法
private static void notBridgePattern() {// 房地产公司赚钱RealtyCorp realtyCorp new RealtyCorp();realtyCorp.makeMoney();System.out.println();// 服装公司赚钱ClothesCorp clothesCorp new ClothesCorp();clothesCorp.makeMoney();System.out.println();// 山寨公司赚钱IPodCorp iPodCorp new IPodCorp();iPodCorp.makeMoney();
}结果 桥梁模式
小结
桥梁模式中引入产品作为桥梁公司只需要专注于通过哪种产品赚钱当公司经营的产品发生变化时只需要修改、添加新的产品类即可
UML图 产品抽象和实现
/*** 产品 抽象*/
public abstract class Product {/*** 产品被生产出*/public abstract void beProduced();/*** 产品被销售*/public abstract void beSell();
}/*** 房子产品*/
public class House extends Product {Overridepublic void beProduced() {System.out.println(生产房子咯....);}Overridepublic void beSell() {System.out.println(销售房子咯....);}
}/*** IPod产品*/
public class IPod extends Product {Overridepublic void beProduced() {System.out.println(生产出山寨IPod...);}Overridepublic void beSell() {System.out.println(销售山寨IPod...);}
}公司抽象和实现
/*** 公司 抽象*/
public abstract class Corp {/*** 公司要有自己的产品*/private Product product;public Corp(Product product) {this.product product;}/*** 核心工作——赚钱*/public void makeMoney() {// 先生产后销售this.product.beProduced();this.product.beSell();}
}/*** 房产公司*/
public class RealtyCorp extends Corp {static {System.out.println(房地产公司是这样运行的);}public RealtyCorp(Product product) {super(product);}Overridepublic void makeMoney() {super.makeMoney();System.out.println(房地产公司赚大钱);}
}/*** IPod山寨公司*/
public class IPodCorp extends Corp {static {System.out.println(山寨公公司是这样运行的);}public IPodCorp(Product product) {super(product);}Overridepublic void makeMoney() {super.makeMoney();System.out.println(山寨也能赚...);}
}入口类方法
private static void bridgePattern() {// 房地产公司赚钱RealtyCorp realtyCorp new RealtyCorp(new House());realtyCorp.makeMoney();// 山寨公司赚钱IPodCorp iPodCorp new IPodCorp(new IPod());iPodCorp.makeMoney();
}结果 参考书籍
秦小波《设计模式之禅》
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929253.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!