Design patterns 向客户端隐藏实现
我正在研究设计模式,但有些东西我还不了解。 例如,我经常想到向客户机隐藏实现 例如,关于工厂模式,我读到应用程序的逻辑不能知道用户界面的子类,甚至在创建过程中也不能 我不明白为什么向客户机隐藏实现是一种优势。我能想到的唯一原因是简单。实际上,我想在这种情况下,客户机只需要知道接口,而不需要知道各种子类,就可以使用对象,从而使一切变得更容易,因为您不需要知道子类的整个实现。我说得对吗 但是,我认为可能需要调用子类的特定方法,在这种情况下,您必须强制转换子类才能调用该方法 话虽如此,我想问你以下问题:Design patterns 向客户端隐藏实现,design-patterns,Design Patterns,我正在研究设计模式,但有些东西我还不了解。 例如,我经常想到向客户机隐藏实现 例如,关于工厂模式,我读到应用程序的逻辑不能知道用户界面的子类,甚至在创建过程中也不能 我不明白为什么向客户机隐藏实现是一种优势。我能想到的唯一原因是简单。实际上,我想在这种情况下,客户机只需要知道接口,而不需要知道各种子类,就可以使用对象,从而使一切变得更容易,因为您不需要知道子类的整个实现。我说得对吗 但是,我认为可能需要调用子类的特定方法,在这种情况下,您必须强制转换子类才能调用该方法 话虽如此,我想问你以下问题
感谢您的帮助假设您为A公司工作,您开发了一个API并公开了所有内容。该公司位于不同地点和时区的其他开发人员使用您的API开发他们自己的应用程序。您的API被数百人用在10个不同的项目中。因为您的代码在许多项目中使用aces,你想做得更好。你开发了更快的算法,甚至减少了20%的代码行。你很高兴在周五晚上提交了你的代码,然后离开了。当你周一早上来到办公室时,你会发现你破坏了其他人的代码。人们无法编译他们的代码,因为你删除或更改了代码你会收到很多愤怒的电子邮件和电话,最终你将不得不将你的API回滚到以前的版本 这就是为什么你必须隐藏你的实现。一旦它公开了,你就不能改变它。想想看,如果谷歌在Android SDK中改变了一个方法名或方法的返回类型,会发生什么。它们破坏了数千个应用程序。API开发者和用户之间总是存在紧张关系。开发者想要隐藏一切,而用户想要隐藏一切如果你发布了一个非常小的界面,人们就不会使用你的API,如果你公开了很多实现细节,你就无法更改你的代码
API的用户不应该担心或考虑具体的类。这不是他们的事,它属于API开发人员。如果你想更多地了解它,你可以阅读有效的Java和设计模式书。我建议使用首字母优先的设计模式。这里问这个问题似乎更好…@KornMuffin当提到其他网站时,我会问it’想想如何操作一辆车,这一点通常是有帮助的。所有的车或多或少都有一个标准的界面:解锁和启动的钥匙,前进或后退的控制,加速的控制和刹车的控制。现在想想这些界面背后有多少“具体的实现”?客户端当一辆汽车在运行时,它不需要知道它是汽油/电动/混合动力发动机,或者发动机是由水或空气冷却的,等等。因为操作员使用相同的控制装置,尽管实施方式不同,但汽车可以与操作员互换。谢谢大家的回答,我正在阅读头先设计模式,是的,我明白了iding实现、接口编程和多态性是相互关联的。隐藏实现意味着使对象独立,并且您可以对该接口的不同子类型使用相同的操作…(对不起,我的英语)