随笔分类 - 设计模式
摘要:公司的一些业务类最开始的设计只实现了核心功能,在后来不断的发展中,需要对其功能进行扩展,增加诸如缓存、加密等功能。为了符合开闭原则,不对原有类进行修改。如果通过新增类继承原有类的方式,类的数量将会成几何级上涨。例如原有3个类,现在要对这些类都扩展四个新功能。那最少就要增加12个子类。臃肿、麻烦。 装
阅读全文
摘要:当对象难以访问或需要对对象的使用加以控制/限制时,可以为对象设置一个代理,代理来持有该对象的实例。对该对象的访问都经由代理对象来控制,再由代理对象去调用被代理对象的实现。这种方法,被称为代理模式。为了增加客户端对目标对象访问的透明性,目标对象和代理类要实现相同的接口,使客户端对方法的使用没有什么区别
阅读全文
摘要:考虑实现一个管理公司组织架构的系统,公司下可能包含子公司,子公司下包含CEO等最高管理者和部门,部门下又包含部门管理者和小部门,等等。抽象成数据结构,就是一个树形结构。 如果为每一种尸体类型都定义一个类,那至少要包括总公司/子公司/部门/员工,这四个类。每个类的所包含的成员也有很大不同,均需要定制。
阅读全文
摘要:思考一个这样的场景,如果你是一个会变通的卖肉夹馍的商人,你觉得只卖传统的一种没有什么新意。所以你提供的馍有白吉馍、面包片、馒头片等多种类型,同时肉也分为牛肉、驴肉、猪肉等。一经上市,果然大受欢迎,卖得非常好。这时,你又开始在馍和肉上继续寻找新的原料来增加你的种类。那么问题来了,如果每天开卖之前,你都
阅读全文
摘要:配器模式定义如下:适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。 从定义中,很容易理解该模式所要解决的问题和解决方法。在实际开发中,...
阅读全文
摘要:一、单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说就是,一个类只负责一项职责。简述:这个比较容易理解,单一职责即只负责自己最应该负责的那一个特定的功能。否则,如果负责多项职责,当其中一个发生变化时,可能会对其他功能产生影响,可维护性、可读性、复杂性都会好。这个原则同样适用于方法级别和...
阅读全文
摘要:建造者模式也是对象创建模式,主要用于构建复杂的组成对象。既对象类由多个组件组成,如汽车由引擎/轮子/方向盘/框 架等部分组成。建造者模式的目的在于,在客户端制定特性类型的前提下,透明的创建这些组件并组成最终产品,而这一切对客户端是透明的。而且扩展不同的复杂对象类时,要易于扩展。 定义:建造者...
阅读全文
摘要:原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。 原型模式,就是将一个原型对象传递给要发动创建行为的对象,要发动创建行为的对象调用原型对象的拷贝方法来实现对象的创建。它属于创建型模式,特殊的是原型类本身...
阅读全文
摘要:单例模式也许是最常见的一种设计模式了。看起来简单,实际上如果不注意细节,产生的问题,相对还是有些复杂的。 在软件系统中,我们希望某些类始终保持最多一个实例对象的存在,来保证一致性或者节约内存等。这时,就用到了单例模式。 单例模式的做法是,将类的构造方法私有化,不对外开放。在类的内部定义一个该...
阅读全文
摘要:一、简单工厂 对象的创建方式有很多,常用new来创建。但是这种做法在一些情况下,有很多不好的地方。比如创建操作散落在代码的多处、对象的创建职责和使用职责混合到一起等等。简单工厂可以一定程度上解决该问题。通常的做法是对被创建的多个类进行抽象,将公共成员和方法放到抽象类中。不同的类继承抽象类,对细节进...
阅读全文
浙公网安备 33010602011771号