之乎者也,阿弥陀佛

软件设计的原则就是,化繁为简,化难为易,把人的思维集中在简单的领域,然后通过有序的组合实现复杂的逻辑。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  341 随笔 :: 0 文章 :: 76 评论 :: 62万 阅读

随笔分类 -  设计模式与面向对象

PatternDesign
摘要:场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,... 阅读全文
posted @ 2014-06-25 11:08 搏击的小船 阅读(415) 评论(0) 推荐(0) 编辑

摘要:依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。 简单的说,依赖倒置原则要求客户端依赖于抽象耦合。 抽象不应当依赖于细节;细节应当依赖于抽象;要针对接口编程,不针对实现编程。举例说明:反面例子:缺点:耦合太紧密,Light发生变化将影响ToggleSwitch解决办法一: 将Light作成Abstract,然后具体类继承自Light。优点:ToggleSwitch依赖于抽象类Light,具有更高的稳定性,而BulbLight与TubeLight继承自Light,可以根据"开放-封闭"原则进行扩展。只要Ligh 阅读全文
posted @ 2012-03-11 20:59 搏击的小船 阅读(403) 评论(0) 推荐(0) 编辑

摘要:代理模式代理模式是一种非常重要的设计模式,在面向对象程序编程有着广泛的应用,包括AOP组件的核心设计思想,都和代理模式有密切关系。代理模式主要分两种:一种是静态代理,一种是动态代理。两种代理方式的实现有着本质的差异。代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客... 阅读全文
posted @ 2012-02-11 17:38 搏击的小船 阅读(187) 评论(0) 推荐(0) 编辑

摘要:装饰者模式Decorator模式(别名Wrapper模式),是开放封闭原则的体现(即:你应该能够不用修改原有类就能扩展一个类的行为)装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。装饰模式通过创建一个包装对象,也就是装饰,来包裹真实的对象。装饰模式以对客户端透明的方式动态地给一... 阅读全文
posted @ 2012-02-10 15:37 搏击的小船 阅读(240) 评论(0) 推荐(0) 编辑

摘要:引言在简单工厂模式中,我们知道如果需要扩展一个新的功能,必须修改工厂角色类,同时客户端直接依赖工厂角色,严重违背了“开放封闭原则”,工厂方法模式的引入正是为了解决此问题。模式定义工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂... 阅读全文
posted @ 2012-02-10 01:33 搏击的小船 阅读(236) 评论(0) 推荐(0) 编辑

摘要:模式定义:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一... 阅读全文
posted @ 2012-02-10 00:38 搏击的小船 阅读(438) 评论(0) 推荐(0) 编辑

摘要:目的: 保证一个类仅有一个实例,并提供一个访问它的全局访问点实现方式:1.最简单的方式:publicclassSingleton{privatestaticSingleton_instance;privateSingleton(){Console.WriteLine("我被实例化了");}publicstaticSingletonInstance{get{ return _instance == null ? (new Singleton()) : _instance; }} }上面代码保证3点:第一,类不能被实例化(私有构造函数);第二,类不能被继承(私有构造函数);第三 阅读全文
posted @ 2012-02-09 16:15 搏击的小船 阅读(318) 评论(0) 推荐(1) 编辑

摘要:面向对象设计是什么?都包含了哪些内容?它所带来的好处是什么?需要你为之付出些什么?在如今这个年代,问这些问题似乎显得很愚蠢,因为这年头几乎每位软件开发人员都知道如何使用某种面向对象编程语言。可是这个问题还是很重要,因为在我看来,绝大多数人在使用这些语言的时候并不知道为什么,而且也不知该如何最充分的运用它们。   软件业曾经爆发过的所有变革里,其中曾经有两个派系如此广泛的深入人心,它们就是结构化编程... 阅读全文
posted @ 2010-09-30 14:56 搏击的小船 阅读(352) 评论(0) 推荐(0) 编辑

摘要:本文随便转载,请保留出处:http://blog.csdn.net/dylgsy/UML的类图关系分为:关联、聚合/组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。1、关联双向关联:C1-C2:指双方都知道对方的... 阅读全文
posted @ 2010-07-07 16:34 搏击的小船 阅读(209) 评论(0) 推荐(0) 编辑

摘要:在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖 (Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系 (Composition)。下面我们结... 阅读全文
posted @ 2010-07-07 11:05 搏击的小船 阅读(190) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示