摘要:
问题:1. 为了满足一些只在某种特定情况下才会执行的特殊行为的需要,向原有类中添加新的代码,这样会增加原有类的复杂度,使其变得越来越难以维护,解决方法就是把类的核心职责和装饰功能区分开。2. 功能定义完全依赖于继承体系会导致类的数量过多,而且代码会产生重复。装饰模式使用组合和委托而不是只使用继承来解 阅读全文
posted @ 2018-09-10 21:56
疯一样的狼人
阅读(148)
评论(0)
推荐(0)
摘要:
问题:在某些场景下,对于某些类而言,一个独立对象和多个对象组成的集合是没有差别的,即,一个独立对象支持的操作,多个对象组成的集合整体也能支持。当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑使用组合模式了。 实现 阅读全文
posted @ 2018-09-10 21:46
疯一样的狼人
阅读(146)
评论(0)
推荐(0)
摘要:
问题:工厂方法模式带来了平行继承层次问题,每次添加新产品类,都需要去创建一个对应的具体工厂类。 概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型实例创建新的对象。 实现:代码示例: 效果:1. 使用组合代替继承,无需维护一个大型的平行继承体系,促进了代码运行时的灵活性,减少了必须创建的类。2 阅读全文
posted @ 2018-09-10 21:07
疯一样的狼人
阅读(114)
评论(0)
推荐(0)
摘要:
代码示例: 阅读全文
posted @ 2018-09-10 20:47
疯一样的狼人
阅读(151)
评论(0)
推荐(0)
摘要:
问题:“工厂方法模式”很好地解决了产品类横向增长的问题,而“抽象工厂模式”则是在“工厂方法模式”的基础上,考虑如何将产品类进行纵向增长的问题。 概念:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 实现:1. 类图示例: 2. 代码示例: 效果:优点:1. 只对系统中功能相关的 阅读全文
posted @ 2018-09-10 20:39
疯一样的狼人
阅读(134)
评论(0)
推荐(0)
摘要:
问题:1. 需要能够相对轻松地加入一些新的产品类型。2. 每一个产品类型都可定制特定的功能。 概念:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 实现:1. 类图示例: 2. 代码示例: 效果:优点:1. 实现了单一职责原则,创建者类的每一个子类都只需要负责实例化对应的产品子类。2. 添加 阅读全文
posted @ 2018-09-10 17:46
疯一样的狼人
阅读(135)
评论(0)
推荐(0)
摘要:
问题:1. 应用程序不同部分之间需要通过某个类的唯一实例来共享一些数据。2. 某个类需要保证其只有唯一实例。 实现:1. 构造方法私有化,防止类外部实例化该类,从而出现多个实例对象。2. 使用public静态方法和private静态属性来间接实例化对象。代码示例: 效果:1. 可以通过单例对象在应用 阅读全文
posted @ 2018-09-10 17:31
疯一样的狼人
阅读(155)
评论(0)
推荐(0)

浙公网安备 33010602011771号