设计模式之创建模式

    模式的功能:最大程度地用抽象消除类之间的耦合关系,并且让类各司其职,防止功能重迭,提高可
 
重用性。
 
    好的面向对象的设计,就是能够最大程度地消除类与类之间的依赖,提高系统的可扩展性、灵活性,
 
所以好的面向对象设计,必须符合一些原则,如开闭原则,DIP原则等等,而模式是实践这些原则的
 
惯用方法,下面谈谈我对模式的理解。
     首先谈谈创建对象时使用到的一些模式,即创建模式。
 
Factory模式
 
    面向对象缺少不了对象,如果有大量对象生成,对象生产的代码原来分布在程序的各个角落,而且
 
对象可能是通过构造函数生成,也可能通过类名反射生成,假如要对生产过程或者生产出来的对象加一些控制,
 
必须要修改所有生成对象的代码,为了体现集中控制,并减少其他类对对象生成的依赖,专门开辟
 
工厂用来生成对象,封装对象的生成过程。
 
Singleton模式
 
    有时候一个类如果在内存中有多个实例,而这些实例只是实现相同的功能,状态也完全一样,这时就可以
 
考虑使用singleton来节省内存。例如Factory模式的工厂对象。再有的时候,我们原来就期望系统中只存在类
 
的一个实例,如连接数据库的connection对象,我们也可以使用singleton模式。
   
    这个模式易于理解,但是在java中使用起来,涉及到对象、内存、线程这些概念,很容易犯错误,必须小心。
 
而且有时候singleton并不一定是你想象的那样就是singleton,你可以参见
 
   
Prototype模式
 
     生成对象是一个复杂的过程,需要代价,但是利用原型模式就没这么复杂了,可以重用原先的生成过程,
 
即只要拷贝已生成的对象就可以了。
 
Builder模式
 
    有时候创建一个复杂对象很麻烦,比如造汽车,要做方向盘、轮子、车身。而方向盘、轮子等的制造过程也不
 
简单。如果把造一个汽车的过程细化到所有零件的制造的话,不仅让人感觉到它的复杂难用,而且制造过程很难让
人分清汽车本身的结构。Builder模式把制造复杂对象的过程进行了解耦,把复杂对象的创建和部件的创建分别开
来,复杂对象的创建仅成为装配部件,这不仅使得创建过程变得简单清析,也使得创建的部件可以被重用,更有利
于测试与定位创建过程出现的问题。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值