草庐IT

紧耦合

全部标签

java - 当实现类是强制性的并绑定(bind)到接口(interface)契约时,如何使用 Java 中的接口(interface)实现松散耦合?

当我们无论如何都必须创建一个实现类时,松散耦合如何与接口(interface)相关联?实现类被迫实现接口(interface)中定义的所有那些方法。我不明白这如何允许失去耦合?我是面向对象编程和软件设计的新手,所以如果您能阐明这个主题,那将非常有帮助。一个例子完全可以锦上添花。 最佳答案 关键是接口(interface)不仅允许您编写一个实现它的类,它还允许您编写多个。当您拥有通过使用接口(interface)与类交互的代码时,该代码能够与实现该接口(interface)的任何类一起工作,而不管它是如何实现它的。这允许您将不同的类提

java - 继承会增加耦合吗?

我对面向对象的编程技术还很陌生,据我所知,耦合是创建可维护、可重用代码的最大障碍。当我们让几个子类继承一个基类时,子类不就变成了对基类的依赖了吗?如果我必须在以后的某个时间点删除基类怎么办。这不会破坏子类中的代码吗? 最佳答案 是的。这称为SubclassCoupling:Describestherelationshipbetweenachildanditsparent.像所有耦合一样,影响一个单元可能会影响依赖它的单元。在这种情况下,删除父类会影响所有它的子类,因为在删除父类(superclass)型时会发生编译器错误。这意味着子

php - 减少实体中的耦合

我正在寻找一种合适的方法来减少我为Symfony2框架编写的消息包中的耦合,以便我可以在应用程序之间轻松地使用它。Message实体的每个实例都应该有一个发送者和一个接收者,instanceofSymfony\Component\Security\Core\User\UserInterface,我可以在属性的setter中很好地要求它们。但是,在设置ORM关系时,似乎我必须专门设置一个targetEntity(例如Foo\BarBundle\Entity\User),这意味着Message实体的所有进一步使用不同的应用程序要么需要更改代码,要么强行使用用户实体,这在我看来似乎不在消息包

php - 松散耦合的 MVC 的替代方案?

我在一家网上商店工作,担任PHP程序员。大多数时候,我们使用良好的编码实践,但整个站点的结构不多。我现在已经进入了对我们的一些实践感到厌倦的阶段,我想以一种有用的方式扩展、简化和生成一些东西,这不仅对我有用,而且对办公室里的混合程序员Web开发人员也有用。一位员工给我们留下了一个用PHP编写的MVC站点,我不得不稍微维护一下它,我知道它是如何工作的,但有我的提示,我的主要提示是它与依赖于其他。我看到了关注点分离的优势,但这会让除了我看代码的任何人都感到困惑。例如,如果我需要向站点添加新页面,我必须添加一个View,然后添加一个模型,然后更新Controller。制作新页面的临时方法比这

php - 使用接口(interface)抽象相关功能与紧耦合

我正在尝试理解紧耦合的真正定义。我有read一个number的posts关于这个主题,但有一件事仍然不适合我。我理解类应该使用它们的接口(interface)而不是它们的具体实现来注入(inject)到其他类中。我也明白,如果一个类遵循一个接口(interface),那么任何使用注入(inject)接口(interface)的类都可以调用接口(interface)中定义的公共(public)函数,并期望获得类似的功能。interfaceiFormatter(){publicfunctionformat(array$order):array}publicclassOrderFormatt

java - 紧密耦合的 fragment 在 Android 中可以吗(在某些情况下)?

当实现Fragment到Activity的通信时,通常的例子是:MyActivityextendsActivityimplementsMyInterface{...@OverridepublicvoidmyMethod(){//Dosomething....}...}MyFragmentextendsFragment{...privatevoidaMethod(){((MyInterface)getActivity()).myMethod();}...}事实是,在我的项目中,Fragments通常仅用于以“divideetimpera”的方式分解不同模块中的现有Activity(可能在

android - meteor 如何与 android 应用程序耦合?

meteor主页(www.meteor.com)在要点8(“互操作性”)中说:YoucanconnectanythingtoMeteor,fromnativemobileappstolegacydatabasestoArduinos.JustimplementthesimpleDDPprotocol.问题:Android是Java,如何连接meteor(js)?任何指向有用资源/教程的链接都将不胜感激! 最佳答案 DDP代表分布式数据协议(protocol),专用于Meteor。目前还没有内置的Android/Java支持,但这里有

没有与数据库紧密耦合并使用存储过程的 PHP 框架?

最近在工作中遇到了这个问题,Google一直……嗯,用处不大。我们正在使用Yii,但公司政策是所有数据库访问都必须通过MySQL存储过程完成,这“破坏”了Yii的很多部分,并使其一些使生活更轻松的尝试变得无关紧要。(需要明确的是,只需要SP的决定是在Yii实现后做出的。)是否有任何PHP框架可以在这种限制下更好地工作?我们正在使用YiiBooster,因此任何其他框架都必须与Bootstrap兼容,否则UI/UX部门将开始尖叫。TLDR版本:通过谷歌搜索和此处搜索,我的初步印象是任何其他PHP框架都有完全相同的限制。这是正确的吗? 最佳答案

swift - Swift segues 是紧密耦合的吗?

在使用MVC的Swift中,转发数据的常用方法是使用prepare(for:sender:)。在该方法中,您可以获得对目标VC的引用并访问其属性以发送数据。但这不是考虑耦合ViewController吗?我希望答案不会被视为意见问题,因为我真的很想了解segues如何融入MVC。 最佳答案 在segue中传递数据与MVC完全兼容。目标VC被视为源VC的一个View。当Controller与View通信时,它会使用所需的数据配置View。写入destinationVC的公共(public)接口(interface)(属性)是您设置它的

ios - 如何在 coredata/NSManagedObject 模型数据更改与应用程序用户界面之间进行紧密耦合?

TL;DR-为了简化整个描述,当核心数据对象属性在后台频繁更新时,如何着手实现一个非基于TableView的ViewControllerUI。因此,视觉数据表示需要立即更新。[在tableview中它很容易处理,您使用FRC并在对象更新时通过FRC委托(delegate)方法重新加载行。]我知道NSFetchedResultsController并通过它映射到用户界面。但只有当用户界面基于列表时才会这样。在我的例子中,多个类似类型的硬件通过蓝牙(BLE)连接到我的应用程序,每个硬件通常提供更新频率一般为1秒。例如温度、电荷变化。下面是一个UI流程示例,列表->详细信息详细信息健康事件通