设计模式怎样解决设计问题[1] 寻找合适的对象

设计模式怎样解决设计问题[1] 寻找合适的对象

 面向对象设计最困难的部分是将系统分解成对象集合。因为要考虑许多因素:封装、依赖关系、灵活性、性能、演化、复用等等,它们都影响着系统的分解,并且这些因素通常都是互相冲突的。

寻找合适的类是为了便于你设计出好用的类,包含了3种设计模式:

Composite模式(组合模式),State模式(状态模式)以及Strategy模式(策略模式)

 

Composite模式(组合模式)

http://www.cnblogs.com/jiese/p/3168844.html

组合模式以树形结构为主,其目的是为了让客户端使用的时候不用区分整体与局部之间的差异,整体与局部的调用方法一致(其实并不好用......)。

 

 

State模式(状态模式)

状态模式中,需要定义一个状态虚类,然后将不同状态的实现延迟到继承的子类当中,可以解除处理数据类的耦合度,非常实用。

项目源码:

https://github.com/YouXianMing/StatePattern

 

 

Strategy模式(策略模式)

策略模式与状态模式非常相似,不同的地方就在于,策略是一种算法,其目的是为了执行一种算法,不是将一个对象从一种状态改变到另外一种状态,其余使用方法类似,源码请参考状态模式源码

时间: 2024-12-30 10:19:48

设计模式怎样解决设计问题[1] 寻找合适的对象的相关文章

先了解自己的培训需求,再寻找合适的课程

专家建议,有意于微营销的人,先了解自己的培训需求,再寻找合适的课程. 继前几年微博营销走红之后,2013年微信营销又成为人们关注的热点.而随着微营销诞生的微营销培训,也在近两年火了一把,各种机构.导师层出不穷,不少做网络营销的人也纷纷来分一杯羹,微营销培训市场可谓乱象丛生,更有人站出来说微营销是一场"骗局".业内人士表示,微营销培训并不是一个新领域,老师们主要是分享一些方法和技巧."就像教你谈恋爱,学了之后就能找到对象吗?" 微营销培训效果受质疑 近几年随着微博.微

《SEO的艺术(原书第2版)》——3.5 理解受众,寻找合适的定位

3.5 理解受众,寻找合适的定位 SEO计划中不容忽视的一个部分是找出网站的目标受众.这并不总是那么容易确定.正如你在本节中将要看到的,许多因素(包括竞争.你的公司的优点或者弱点等)都会影响这一点.3.5.1 描绘产品和服务成功的SEO需要对企业本身有透彻的了解.你的机构必须提供哪些产品.服务.信息和资源?前一节已经提到,理解谁在搜索你试图推销的东西是一项关键性的SEO活动,这要求对你所提供的服务的各个方面有全面的了解.你还需要理解产品在广泛的市场中属于哪个类别,因为这种分类可能与你所要开发的网

从产品设计流程中寻找好的设计

什么是好的产品设计 既然要寻找好的产品设计,那一开始我们就先来定义一下什么是好的产品设计. 如果用一句话来概括,我会说好的产品设计就是:为设计制定合理的目标,达到或超过此目标的设计就是好的产品设计. 那么,合理的目标又是指什么呢?这取决于产品本身的目标和设计要解决的问题.举个例子: 在有道云笔记的Android版本中,假设我们想要引导用户登录并且使用该产品,以享受到云端的便利,我们可以提出这样的产品设计需求:在首页增加引导用户登录的按钮,以达到上述目标. 图1 有道云笔记登录界面 此时,设计的目

如何寻找合适的信息化项目负责人?

由于信息化项目涉及到管理.涉及到人,是一个管理改造项目,而不是纯技术改造项目,因此信息化项目有很大的不确定性和主观性. 许多企业在选型时考虑较多的是软件厂商的实力以及对软件产品技术先进性等的比较,却忽视了选型中最重要的资源--人.人的情绪.能力.需求和经验才是系统能否可靠运行的关键因素. 如何选择合适的项目负责人 项目负责人不仅负责整个项目需求的确定,更重要是在于协调各部门完成整个工作,更要懂得ERP的基本原理和功能. 笔者参与过的项目选型中,我们考虑到信息化项目的复杂性和跨多个部门的需要,决定

超越设计模式:深入探讨超越设计模式之外的设计原则

可复用面向对象软件的基础 -- 设计模式,以其可复用的设计初衷.精巧的逻辑思维被广大面向对象程序设计所追捧.但不少程序设计者却经常将思考的问题转换为遇到了什么场景就要用什么模式.这种八股文式的思维在某种程度上严重影响了程序设计的艺术性,并固化了程序设计者的思想,违背了设计模式的初衷.在本文中,作者总结了设计模式背后的核心思想,并提出了几个关键的设计原则,例如面向接口.封装变化.依赖倒置原则.只和朋友交谈等.程序设计者只需在程序设计时遵循这些原则,便会发现原来已经在使用某些设计模式了. 引题 GO

设计模式,六大设计原则,类的特性

国庆节没啥鸟事,把重要东西来个一遍. 风.fox 类的特性 封装,继承,多态 设计原则 设计模式的六大原则 1.开闭原则(Open Close Principle) 开闭原则是最基础的设计原则. 开闭原则: 对扩展开放,对修改关闭. 一个软件实体需要进行扩展来实现变化,而不是通过去修改已有的代码来实现变化 软件实体: 项目或软件产品中按照一定的逻辑规则划分的模块 抽象和类 方法 2.单一职责原则(Single Responsibility Principle) 简称SPR. 单一职责原则: 应该

正确选择虚拟主机 为网站寻找合适的家

中介交易 SEO诊断 淘宝客 云主机 技术大厅 现在的IDC服务商越来越多,多到我们都不知道如何选择.做站的朋友们都知道,主机是网站的基础,主机的好坏直接影响着网站的命运,所以在选择虚拟主机的 时候一定要谨慎,万一选错了主机,不仅你的网站没建好,而且还浪费了人力物力,为了避免站长盲目性选择虚拟主机,在这里提一些自己的经验给大家参考: 尽量不要使用免费主机 俗话说天下没有免费的午餐,免费的主机确实很实惠,但是免费的并不适合我们建站.免费的主机没有任何的保障,出了问题只能是自己承受,而且免费空间没有

寻找合适的CIO人选

CIO老胡和著名http://www.aliyun.com/zixun/aggregation/12095.html">民营企业家钱老板私交甚好,两人半年多没见了.这天,钱老板找到老胡,一见面就迫不及待地对老胡说:"半年前,我遇到一位电脑高手,名牌大学计算机专业的高材生,我就把公司信息化重任交给他.这小子倒是挺敢干,初生牛犊不怕虎.刚来没多久,就买回来一堆最先进的设备,还让公司业务部门把业务都搬到电脑上.可结果呢?搞得销售收入直线下滑,员工大幅度流失,红红火火的公司被他搞得岌岌可

设计模式之(1)设计原则

*开-闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开发,对修改关闭.说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.换言之,应当可以在不必修改源代码的情况下改变这个模块的行为. *.UML(统一建模语言, Unified Modeling Language),是OMG(Object Management Group)在1997年发表的图标式软件设计语言. 1.类图中的关系:(1).一般化关系:(Generalization)