UIKit参考说UIView是UIWindow的超类,但是尽管有这种父母,UIWindow实际上管理UIViews.这对我来说听起来很不寻常.
有谁知道这在软件设计方面的重要性是什么?
非常感谢.
编辑:
我阅读了iPhone编程指南中的相关段落.然而我无法理解他们为什么会这样做:让UIWindow成为UIView的父母.肯定有一些事情迫使Apple以这种方式设计类层次结构.
我想知道为什么我们在php中使用类.我在所有开源中看到他们使用类来执行查询.这意味着他们使用类来获取结果,插入查询等.我认为这用于一致性和加速,但据我所知,如果我们执行查询使用mysql_query(),而不是创建一个对象链接$db->query将执行快速与第二个相比,因为在对象中它将转到该函数,然后在那里执行它,之后它返回结果但是如果mysql_query()它将在同一个地方执行查询.所以我认为mysql_query()会快速执行.那么为什么我们使用类和对象来执行查询,使用类有什么好处?
我目前正在用c ++开发游戏.因为没有垃圾收集器,所以总是要小心地删除对象,并确保一旦删除这些对象就不再被访问了.
现在随着项目的发展,一些对象可能会被越来越多的地方引用.例如,游戏中的我的单元可以从渲染器,场景层次结构,选择机制,HUD等引用.now - 如果一个对象被删除,则必须确保引用该对象的所有其他类都将被通知.
或者让我们说另一种方式 - 如果我创建一个可以引用我的单位的新类,我还必须更改单元的代码(或单元管理器或任何模块删除单元的代码,如果它得到为了确保这个新模块知道它当前引用的特定单元何时被删除.
现在我认为可以有一个简单的事件驱动的通用方法,通过创建另一个对象可以订阅的基类来解决这个问题.像这样的东西:
class DeletableBase;//forward declaration
class ISubscriber{
public:
virtual someObjectGotDeleted(DeletableBase* deletedObject)=0;
};
class DeletableBase{
private:
vector<ISubscriber*> subscribers;
public:
virtual ~DeletableBase(){
for(int i=0; i<subscribers.size(); i++)
subscribers[i]->someObjectGotDeleted(this);
}
subscribeForDeleteEvent(ISubscriber* subscriber){
subscribers.push_back(subscriber);
}
};
Run Code Online (Sandbox Code Playgroud)
有了 - 如果我从一个新类引用从这个类继承的任何对象,我可以简单地将自己添加为订阅者,如果该对象将从任何其他地方删除,我会得到关于它的通知.
这是一种"干净"的编码方式吗?
Delphi XE,Win32应用程序,SQL Server 2005数据库.
我正在实施质量管理体系.我有一些预定义的Process Maps将它们应用到我的应用程序/系统中.我被要求拥有所有事务(我不确定它是否是正确的词)动态,所以每当他们修改流程图时它会影响应用程序(当然没有重新编译或任何补丁)
这是一个更清楚解释的例子:
假设一个文档控制模块,我们有一个流程图:
现在,应用程序应该从数据库中读取其功能的参数.假设收到并检查了文档(1和2),现在发送它.一旦按下"保存"按钮,系统应检查谁应该是该文件的接收者并将文件发送给他/她.在我们的例子中,接收者是[项目经理].但是,稍后他们可能决定将流程图更改为 - "3- [文档控制器]将文档发送到[Project Architect]".因此,系统应按流程图中的定义进行操作.
我想知道实现这样的系统(Delphi XE,win32)的正确方法是什么?
我有一些想法,但不确定它是否正确:对于流程图中的每个流程,我可以定义一个具有一种唯一ID的服务,我从数据库中读取服务并在应用程序层中调用它(具有相关参数) .在这种情况下,我不确定每个服务是否应该是一个dll或包文件,我相信拥有这么多的库文件是错误的,因为服务不会很少!
我希望我能很好地解释我的问题,如果时间太长,我很抱歉.如果不清楚,请告诉我.
谢谢,
Mahya
我正在做一个项目.我试图将核心实现为独立的jar文件,可以从命令行甚至是Windows服务运行.核心负责跟踪几个文件并发送一些通知电子邮件.问题是,保持GUI完全独立的最佳想法是什么?
GUI需要与核心进行交互
我用Delphi和C开发了这个软件.C用于编写核心逻辑并使用Windows消息和回调,我在C dll/service上注册了Delphi GUI.我很困惑如何在java中实现它.
PS:我在这里讨论它的原因是在用Java编码时学习和探索这种软件的更好设计.我不是要求Observer Pattern文档或客户端服务器架构.可能还有其他可能的方法,我不知道.所以我期待任何想法,设计或框架.
出于某种原因,当我使用java.util.Observable对象调用notifyObserver方法时,我的观察者没有得到通知:
这是我的可观察对象:
public class ProjectManager extends Observable
{
...
public void updateProjects(String project, String pack, String source, String ARN)
{
...
if(newSource)
{
tempPack.add(tempSource);
System.out.println("Notify observers: " + this.countObservers());
this.notifyObservers();
}
...
}
Run Code Online (Sandbox Code Playgroud)
我可以从我的输出中看到观察者正在被添加但没有得到通知.
我的观察者对象看起来像这样:
public class IDE implements Observer
{
@Override
public void update(Observable o, Object arg) {
System.out.println("Notified");
}
Run Code Online (Sandbox Code Playgroud)
由于某些奇怪的原因,可观察对象根本没有得到通知.我在这里做错了吗?
在Martin Fowler的书 "企业应用程序架构模式"中,他在第2页写道:"在某些方面,企业应用程序比电信软件容易得多 - 我们没有非常难的多线程问题......".
是否有人知道这些"非常难以解决的多线程问题"和解决方案的摘要,以设计模式的形式,如着名的GoF 设计模式书?
有POSA书.但这些书可能过于笼统和根本.更多以域名为中心的例子就是这个问题.
architecture multithreading design-patterns software-design telecommunication
在python中初始化一个实例变量(例如self.my_var)时,你应该在你的类__init__函数中执行它,以便为每个实例的这个变量正确保留内存(< - 我的错误,见下文).如果要定义类级变量,可以在函数外部进行,而不使用self前缀.
当你比实例化一个函数内部变量等,会发生什么__init__用self前缀?它的行为就像一个普通的实例变量,有没有令人信服的理由不这样做?除了隐藏代码逻辑的危险之外,这已经足够了,但是我想知道如果你这样做,你可能会在内存或其他隐藏的问题上运行吗?
我无法找到在某处讨论的内容.
更新 抱歉
我误解了一些答案,包括第一个和第三个Python __init__和self他们做了什么?(寻找其他人)并认为这__init__是一种特殊类型的功能,认为它以某种方式具有内存分配功能(!?).错误的问题.
我在当前项目中使用Spring Data和Neo4j并处于以下情况:
@RestController
@RequestMapping(value = SearchResource.URI)
public class PersonResource {
public static final String URI = "/person";
@Autowired
PersonRepository personRepository;
@GetMapping
public Collection<Person> findPersons(
@RequestParam(value = "name", required = false) String name,
@RequestParam(value = "birthDate", required = false) Long birthDate,
@RequestParam(value = "town", required = false) Spring town) {
Collection<Person> persons;
if (name != null && birthDate == null && town == null) {
persons = personRepository.findPersonByName(name);
} else if (name != null && birthDate != null && town == …Run Code Online (Sandbox Code Playgroud) 我想用Spring Data JDBC建模OneToMany Relation.我在这个非常有用的博客上阅读了https://spring.io/blog/2018/09/24/spring-data-jdbc-references-and-aggregates,当你想为ToMany参考建模时你应该使用引用:
因此,任何"多对一"和"多对多"关系都必须通过引用id来建模.
所以我有这样的场景:
一个Student可以有多个Registration.一个人Registration可以只有一个Student.如果删除Registration分配的Student不应该删除级联.
我最终得到了这个建模:
@Data
@AllArgsConstructor(access = AccessLevel.PRIVATE, onConstructor = @__(@PersistenceConstructor))
public class Registration {
private final @Id
@Wither
long registrationId;
@NotNull
private String electiveType;
@NotNull
private LocalDateTime created = LocalDateTime.now();
@NotNull
private StudentRegistrationReference studentRegistrationReference;
}
@Data
@AllArgsConstructor(access = AccessLevel.PRIVATE, onConstructor = @__(@PersistenceConstructor))
public class StudentRegistrationReference {
private long student;
private long registration;
}
@Data
@AllArgsConstructor(access = AccessLevel.PRIVATE, onConstructor = @__(@PersistenceConstructor))
public …Run Code Online (Sandbox Code Playgroud) software-design ×10
architecture ×4
java ×3
spring-data ×2
c++ ×1
cypher ×1
delphi ×1
iphone ×1
oop ×1
php ×1
python ×1
spring ×1
uiview ×1
uiwindow ×1
workflow ×1