灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3530回复:0

怎样才能开发出好的软件(三)

楼主#
更多 发布于:2011-12-30 17:59
三层架构的基本形式在怎样才能开发出好的软件(二)中已经讲过了,为了提高程序可维护性、可扩展性、可复用性、灵活性,可以在其中加入设计模式,设计模式有23种,这些设计模式可以分为三大类:创建型模式、结构型模式、行为型模式。下面就分别介绍一下这些设计模式的基本结构、使用的好处以及使用场合
      创建型模式有抽象工厂模式、建造者模式、工厂方法、原型模式、单例模式。
抽象工厂模式:

图片:34_3710_b5788cadc3b9d17.gif



        这个设计模式客户端只与抽象工厂以及抽象产品打交道,而与具体的实现是隔离的,主要用在可能变更的地方,比如更换数据库。当需要不同类型的产品的话直接添加一个工厂和产生的产品即可。
建造者模式:

图片:34_3710_2445f07c0e33f51.gif



         这个设计模式主要用于构造一个产品时,使所有的产品都有一些必须的部件,抽象建造者中定义了抽象的建造方法,具体的建造者继承抽象建造者时就必须实现抽象建造者中的所有组装方法,由于建造者隐藏了产品是如何组装的,所有如果想要改变一个产品的内部组装,只需要再定义一个具体建造者就可以了。
工厂方法模式:

图片:34_3710_161c6c100c33d78.gif



         工厂方法模式定义了一个用于创建对象的接口(抽象工厂类),让子类决定实例化那个类,它使一个类的实例化延迟到其子类(具体工厂)。它与抽象工厂模式的区别是:抽象工厂模式中的具体工厂用于生产一个品牌的所有产品,而工厂方法模式中的具体工厂用于生产具有相同功能的一类产品。
原型模式:

图片:34_3710_1092e9474c592b4.gif



       当创建多个类似的对象时就可以用原型模式,原型模式的关键点就在于Clone()方法,它使得相同的对象或类似的对象可以直接Clone,对于与原来对象不同的属性可以重新定义,但是大体上还是不会变的,如果更改的很多的话就要考虑是不是这个设计模式用的不恰当。用这个设计模式隐藏了对象的创建细节,而且不用重新初始化对象,对性能又是一个大的提高。
单例模式:
        这个模式是我认为最简单的一个模式,之所以这么说是因为它简单到都不用画图来表示(开玩笑啦~~),这个类只有一点:就是保证一个类只有一个实例,并且提供一个访问它的全局访问点。那怎样才能做到这一点呢?办法就是让类自身保存它的唯一实例,这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。也就是说这个类中的构造方法设置为私有,不让外界利用new创建该类的实例,然后编写一个静态方法,这个方法保证这个类只有一个实例(如果实例不存在就创建一个实例,然后就返回实例)

喜欢0 评分0
游客

返回顶部