设计模式学习的阶段性总结(创建型设计模式part)

本文介绍了几种创建型设计模式,包括工厂模式、生成器模式、原型模式和单例模式等。探讨了它们如何解决对象创建过程中的耦合问题,并解释了各自的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段时间主要集中精力学习了以下创建型设计模式。3个工厂模式(简单工厂模式,工厂方法模式以及抽象工厂模式),Builder生成器模式,Prototype原型模式,Singleton单件模式。其中,简单工厂模式不是gang of four23个模式中的一个。

    创建型模式主要就是要解决一个new的问题。常规的创建对象的方法:

              Girl g = new Girl();

New的 问题是:实现依赖,不能应对具体实例化类型的变化。解决思路:封装变化点,哪里变化就封装哪里。创建型模式的共同点就是对象创建,因此就要封装对象创建。 其中面向接口编程,依赖接口而非依赖实现,是非常好的一个办法。当然了,用抽象类也可以的。简单工厂模式就在这种情况下应运而生了。把Girl抽象为一个接口,然后有美girlAmerican girl),土girlTurkey girl),点点点。这样,我们在上层架构的时候,在需要用到girl的地方,用interface Girl来替换就好了,而不用管它是美还是土,这就是所谓的依赖接口,不依赖实现。恩。也就是将所要创建的具体对象工作延迟到子类,从而实现一种扩展(而非更改)的策略,较好的解决了使用者和具体类之间的耦合关系。

       当然了,Singleton的主要作用是解决了实体对象个数的问题。其他创建型模式解决的都是new所带来的耦合性关系。

       Factory Method模式解决了单个对象的需求变化,Abstract Factory模式解决了系列对象的需求变化,Builder模式解决了对象部分的需求变化。

       Builder: 在软件系统中,有时候面临着一个复杂对象的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈 的变化,但是将他们组合在一起的算法却相对稳定。根据封装变化的原理,我们把复杂对象的各个部分隔离出来,从而保持系统中的稳定构建算法不随着需求改变而 改变。

       Prototype:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。Factory Method, Abstract Factory, Builder都需要一个额外的工厂类来负责实例化具体对象,而Prototype则是通过原型,一个特殊的工厂类来clone具体对象。

       在实际设计过程中,如果遇到易变的具体类,起初的设计通常从Factory Method开始,当遇到更多的复杂变化时,再考虑重构为其他三种工厂模式(Abstract Factory, Builder, Prototype)。

       多用,多理解,多思考,多看看这方面的书就能更好的理解OOOODOOP,设计模式等思想。经验也是非常重要的,记得在实际项目中积累这种经验。恩。Come on, Baby!

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值