首页 > TAG信息列表 > class-design

OOP设计问题:容器或容器中的责任?

我专注于使软件设计灵活可靠,而实现这一目标的关键概念之一就是封装. 最近,我遇到了一个特殊的设计问题,我不能(和我自己)争论最好的解决方案是什么. 举例说明问题的具体示例:设备具有地址(在总线上).该设备具有多个寄存器.寄存器还具有一个地址(在设备内部-亦称虚拟地址/映射地址),

在Python中查找类的静态属性

这是一个不寻常的问题,但是我想根据我碰巧添加到该类的任何属性动态生成该类的__slots__属性. 例如,如果我有一个课: class A(object): one = 1 two = 2 __slots__ = ['one', 'two'] 我想动态地执行此操作,而不是手动指定参数,我将如何执行此操作?解决方法:在您尝试定

需要有关mysql规范化和php类结构的建议

我正在尝试建立一个记录日志,媒体(照片,视频,音频)上传统计信息的系统.所以我想出3张桌子,1张用于音频,1张用于视频,1张用于照片.这是结构 +-----------+---------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-

CodeGo.net>类转换方法去哪里

我的许多课程最终都需要转换函数. > DataRow->对象转换器> ViewModel<->模型转换器 我的问题是功能应该放在哪里? 选项1:在源类内部 public class Employee { public EmployeeViewModel ToViewModel() {} } var vm = myEmployee.ToViewModel() 选项2:在目标类别内 public class

C,防止在堆栈上创建类实例(在编译期间)

我知道有一些方法可以阻止用户使用new和delete操作符来阻止在堆上创建类.我正试图做相反的事情.我有一个类,我想阻止用户在堆栈上创建它的实例,并且只有使用new运算符发起的实例才会编译.更具体地说,我希望以下代码在编译期间收到错误: MyClass c1; //compilation error MyClass*

c – 向字符串类添加函数

我理解继承自std :: string类是一个糟糕的想法,但只是尝试使用继承将自定义函数添加到字符串类以进行虚拟赋值. 我想将我的函数称为’add’,当我执行str.add(str1,str2)时;它应该在字符串的开头附加str1,在字符串的末尾附加str2.这个类(继承的字符串类)是另一个类的私有成员类(比如

android – 优化:访问字段与方法

我知道优化的规则#1是:不要这样做!但我认为这是一个简单的问题,如果我现在开始使用更快的方法,那么当我完成时我可以节省大量的cpu时间. 我正在制作一个RPG,让我们说这是自定义类的一部分: public class Baddie{ int health; int magic; public Baddie(int health, int

创建PHP类大纲

我正在寻找一个可以有效勾画一个类的函数或类: class MyClass{ /* * Perhaps include the function comments * in the function. */ function mainFunction(){ //Does Something } function functionWithArgs($arg1,$arg2=false){ //Does Something

c – Qt:信号/插槽设计和性能

我最近开始使用Qt,我需要对信号/插槽机制做一些澄清.我理解它是一个很好的工具,用于生成在不同线程中的对象之间的GUI和通信,但我不确定是否应该在一个简单的情况下使用它,如下所示. 我有三个类,我们称之为MainWindow,DataManager和DataWorker. DataWorker位于一个单独的线程中,并

java – 在UML中表示关联和继承

如果我有一个类似于以下的类定义: class A extends class B { private B b } 我怎么能在UML中表示这种关系?这也是一个糟糕的设计,为什么?解决方法:Java中的extends关键字代表一种泛化,在UML中显示为空心三角形. 该关联显示为实线.角色名称b附加到B类,其前缀为私有符号.大点告诉它它

java – UML类图资源

有没有人有任何好的资源来提高我开发类图的技能?想要在UML 2.0中有任何强大的教程,但搜索似乎返回了糟糕的结果. 目前正在进行最后一年的考试修改,并且真的想尝试一下模型答案的练习论文,我搜索了高低,没有任何运气,有没有人碰巧有什么建议我可能会找到一些? 基本上任何资源都有助于

c – 传递基类指针

场景:我有以下定义的类. class Baseclass { }; class DerivedTypeA : public Baseclass { }; class DerivedTypeB : public Baseclass { }; // ... and so on ... class Container { list<Baseclass*> stuff; list<DerivedTypeA*> specific_stuff; // ... initial

c – 如何限制类/结构,以便只存在某些预定义的对象?

假设您的程序需要跟踪一年中的几个月.每个月都有一个名称和天数.显然,这是您希望在编译时定义的信息,并且您希望限制程序,以便在运行时期间不能定义其他月份信息.当然,您希望方便地访问月份数据而无需复杂的方法调用.这些信息的典型用例将大致如下: Month m = GetRandomMonth(); if

在C#或Java中对MruList进行高效建模

您将如何在C#或Java中实现容量有限的通用MruList? 我想要一个表示最近使用的缓存或列表(= MruList)的类.它应该是通用的,并且仅限于在实例化时指定的容量(计数).我希望界面是这样的: public interface IMruList<T> { public T Store(T item); public void Clear(); publ

java – 构建器模式可能做得太多了吗?

我最近一直在与一个研究小组一起研究设计模式,并且已经认识到构建器模式对于创建由许多(可能是可选的)部分组成的复杂对象非常有用. 但是,建造者做得太多了吗?假设我们有一个具有许多不同对象组合的类,是否有另一种模式可能更适合它而不是制作数十种不同的构建器?是否可以通过不制作

如何重写方法来调用超类的超类方法?

我的一部分认为这不应该是可能的(即使它是),但无论如何我会问. 鉴于以下类层次结构(祖父母和父母来自第三方,因此,不在我的控制之下),我如何覆盖Child中的myMethod(),以便绕过Parent中的重写实现并调用Grandparent中的实现? class Grandparent { public void myMethod() {

c# – 是否应始终初始化Model类的复合属性?

我试图在SO上找到类似的问题,但没有运气.道歉,如果它是重复的. 声明它们时实例化类型变量有什么缺点? 在许多代表业务对象模型的类中,我们有这样的事情: public class RateArea {...} public class FlatRateSchedule { public string ScheduleID {get;set;} public decimal

c# – 如何决定api签名

很多时候,在编写接受可枚举类型的函数时,我会遇到这种混乱.从以下选项中,哪种api暴露会更好: public void Resolve(Func<bool>[] howtos) public void Resolve(IEnumerable<Func<bool>> howtos) public void Resolve(List<Func<bool>> howtos) 我通常根据以下内容做出决定: 如果

php – 在类之间共享数据库连接的最佳方式

我希望能够从print_r隐藏我的数据库连接,所以我使用静态变量.我有一个基类和一些对象类.理想情况下,它们都将共享相同的数据库连接.分享这个的最佳方式是什么? 我设置它的方式现在“有效”,但它感觉不对.必须是更好的方法.(从逻辑上讲,这些类不应该互相继承) class base { priva

Java:如何考虑建立马尔可夫链?

我有一个程序,我正在尝试制作马尔可夫文本生成器.我计划以设定的间隔分割一些文本,然后将其存储到一个类中.我不知道如何解决的问题是如何处理命名我将要进行的类的实例.我打算在for循环中生成实例.用户将传递该方法一定量的文本(其长度事先未知).下面的伪代码: create vector

c# – 对这个阶级的建设性批评

我刚才回顾了一些看起来像这样的代码 public class ProductChecker { // some std stuff public ProductChecker(int AccountNumber) { var account = new AccountPersonalDetails(AccountNumber); //Get some info from account and populate c

PHP常量约定

问候StackOverflow 我正在做一些房屋清洁,并认为我会在PHP中要求一些建议的做法,因为我重新考虑了我的课程.特别是,我有一些类常量属于类别,我想知道一些好的方法来分组具有共同目的的那些. 一个例子: class MySquare { // Colors const COLOR_GREEN = "green"; const COLOR_

OO Javascript:将原型继承与私有变量结合起来的好方法?

在OO Javascript constructor pattern: neo-classical vs prototypal中,我了解到使用原型继承的构造函数可以比使用所谓的新古典模式(带有闭包)的构造函数快10倍(或更多),如Crockford在他的“Good Parts”一书和演示文稿中所提出的那样. 由于这个原因,似乎更喜欢原型继承似乎是正确

python全局对象缓存

关于应用架构的小问题: 我有一个python脚本,作为守护进程运行. 在里面我有很多对象,都是从一个类继承的(让我们把它命名为’entity’) 我还有一个主要对象,让它成为’topsys’ 实体由pair(id,type(= class,粗略))标识,并且它们以许多邪恶的方式连接.它们也一直在创建和删除,并且需要

java – 为什么这么多的化石图书馆让他们的课程公开而不是最终的?

在你用明显的答案跳过我之前,让我对问题进行限定并说,并非所有类都是可分类的. >子类化应该是经过仔细考虑的,而不是所有类的默认属性.>可以说,默认情况下,课程应该是最终的,如果真的需要,那么这不是最终的. 我可以想到包私有类的许多优点. >如果这个类不是我真正的查看,只是一个帮